在 python 中打印行

新手上路,请多包涵

我可以更改什么以便只获得第一行的列表? IE

 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

原文由 Jim G 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 436
2 个回答

你需要:

 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() 如果您还没有从列表(或其他可迭代的东西)开始。

原文由 MarredCheese 发布,翻译遵循 CC BY-SA 4.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)

原文由 bhansa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题