Python 列表推导式

能不能用列表推导式将二维列表的次对角线的值赋值给一个新的列表?

>>> from random import randint as rnd
>>> a = [[rnd(0,9) for _ in range(6)] for _ in range(6)]
>>> for i in a:
    print(i)

    
[2, 0, 7, 0, 5, 4]
[0, 2, 3, 4, 9, 8]
[4, 6, 8, 8, 6, 6]
[8, 1, 4, 8, 5, 6]
[6, 7, 7, 5, 9, 7]
[5, 6, 1, 2, 6, 1]
>>> [n[-i-1] for i,n in enumerate(a) if i<len(a[0])]
[4, 9, 8, 4, 7, 5]
>>> a = [[rnd(0,9) for _ in range(6)] for _ in range(4)]
>>> for i in a:
    print(i)

    
[0, 1, 0, 7, 1, 2]
[0, 2, 2, 9, 3, 1]
[7, 0, 5, 3, 7, 0]
[1, 7, 6, 2, 0, 5]
>>> [n[-i-1] for i,n in enumerate(a) if i<len(a[0])]
[2, 3, 3, 6]
>>> a = [[rnd(0,9) for _ in range(4)] for _ in range(6)]
>>> 
>>> for i in a:
    print(i)

    
[7, 5, 7, 1]
[5, 8, 0, 4]
[8, 6, 6, 8]
[0, 1, 7, 4]
[9, 5, 7, 7]
[2, 1, 2, 0]
>>> [n[-i-1] for i,n in enumerate(a) if i<len(a[0])]
[1, 0, 6, 0]

如不加 if i<len(a[0]) 当行数大于列数时会报错!