我可以更改什么,以便仅获得第一行的列表? 即
0 1
1 2
2 3
3 4
我尝试了以下方法:
matrix = [[1, 2, 3, 4],
[3, 5, 7, 9],
[4, 6, 8, 10],
[5, 7, 9, 11]]
for index in range(len(matrix)):
print(index,matrix[index][0])
0 1
1 3
2 4
3 5
答案 0 :(得分:0)
这应该有效:
matrix = [[1, 2, 3, 4],
[3, 5, 7, 9],
[4, 6, 8, 10],
[5, 7, 9, 11]]
for index in range(len(matrix)):
print(index,matrix[0][index])
您试图从每个列表中获取第一个元素,上面的代码将从第一个列表中获取所有元素。
答案 1 :(得分:0)
假设您的matrix
是行列表:
print(matrix[0])
或者如果您希望每行一项:
for value in matrix[0]:
print(value)
如果需要索引:
for index, value in enumerate(matrix[0]):
print(index, value)
答案 2 :(得分:0)
matrix = [
[1, 2, 3, 4],
[3, 5, 7, 9],
[4, 6, 8, 10],
[5, 7, 9, 11]
]
matrix[0]
给您第一行,只是像这样迭代它:
# ONLY ITERATING OVER THE FIRST ROW
for item in matrix[0]:
print(item)
答案 3 :(得分:0)
您需要:
print(index,matrix[0][index])
代替:
print(index,matrix[index][0])
这是因为第一个索引与外部列表(行)相关联。 matrix[index]
返回整行,然后对其进行切片,则返回该行中的元素。
您还应该更改:
for index in range(len(matrix)):
收件人:
for index in range(len(matrix[0])):
出于同样的原因。由于它是一个方矩阵,所以无论哪种方式都可以解决,但这很幸运。实际上,为简单起见,最好只是这样做:
for i, e in enumerate(matrix[0]):
print(i, e)
在循环的每次迭代中,enumerate()
产生一个由索引和元素组成的元组。如果不需要索引,则可以进一步简化为:
for e in matrix[0]:
print(e)
如果您还没有从列表开始(或者其他可迭代的内容),通常只需要使用range()
。