You saw it differently then I.
I saw the Italian player and Zidane mixing it up a bit, tanlgling with each other. Nothing illegal, just routine, but the kind of thing that starts a grudge between players during a game. Then the Italian and Zidane exchanged words, not friendly ones I assumed. Zidane was walking away when the Italian said something over the top. That prompted Zidanes action>
But given all of the above, it was a cheap shot and the SOB deserved to be thrown out.
Correction:
Zidane was walking away when the Italian said something, which was probably over the top, from Zanes POV.
Seems to me Zidane figured the refs wouldn't be looking and that he could have gotten away with it.