PythonでNoneが出る度にリセットしつつ、None以外の要素の出現数をカウントしたい


初心者です。Pythonで2次元リストの各リスト内の0.1.2.3番目をそれぞれNoneが出るまで何回連続で続いたか、またNoneが出たらリセットのプログラミングを教えていただきたいです。

入力：

[code]

    listA = [[0, -1, 1, 0],
             [1, 0, -1, 1],
             [0, 1, None, 1],
             [-1, None, 0, 1]]
    
[/code]

出力：

[code]

    [4, 0, 1, 4]
    
[/code]

このようにリスト内の0番は4回連続で続いたので4、1番目は4行目にNoneが出たのでリセットで0、2番目は3行目にNoneが出たのでリセットされて1、3番目はNoneがでず4回連続なので4というように出力したいです。よろしくお願いします。



[code]

    >>> [i[::-1].index(None) if None in i else len(i) for i in zip(*listA)]
    [4, 0, 1, 4]
    
[/code]



[code]

    >>> [i[::-1].index(None) if None in i else len(i) for i in zip(*listA)]
    [4, 0, 1, 4]
    
[/code]

