如何切片列表列表的第 n 列?
How to slice the nth column of a list of lists?
我想对列表列表的第 n 列进行切片。
例如
matrix = [
["c","b","a","c"],
["d","a","f","d"],
["g","h","i","a"]
]
我需要转置列表然后使用索引吗?例如
transposed = []
for i in range(len(matrix)+1):
transposed.append([row[i] for row in matrix])
transposed[1]
>>> ['b','a','h']
或者有没有办法直接在嵌套列表上使用索引?
我正在尝试类似的东西:
matrix[:][1]
>>>['d','a','f','d']
但我发现这不起作用。
谢谢
>>> [column[1] for column in matrix]
['b', 'a', 'h']
你是这个意思吗?
您可以使用 zip
转置您的矩阵:
list(zip(*matrix))[1]
输出:('b', 'a', 'h')
我想对列表列表的第 n 列进行切片。 例如
matrix = [
["c","b","a","c"],
["d","a","f","d"],
["g","h","i","a"]
]
我需要转置列表然后使用索引吗?例如
transposed = []
for i in range(len(matrix)+1):
transposed.append([row[i] for row in matrix])
transposed[1]
>>> ['b','a','h']
或者有没有办法直接在嵌套列表上使用索引?
我正在尝试类似的东西:
matrix[:][1]
>>>['d','a','f','d']
但我发现这不起作用。
谢谢
>>> [column[1] for column in matrix]
['b', 'a', 'h']
你是这个意思吗?
您可以使用 zip
转置您的矩阵:
list(zip(*matrix))[1]
输出:('b', 'a', 'h')