能不能用列表推导式将二维列表的次对角线的值赋值给一个新的列表?
1条回答 默认 最新
关注
>>> 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]) 当行数大于列数时会报错!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用