Python:从列表列表中检索项

2024-04-28 21:23:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个列表列表,我想知道从底层列表中检索特定项的正确方法。你知道吗

例如,假设我要打印100:

tree1 = [[0, 0, 0], [1, 1, 1], [2, 100, 2]]
tree2 = [[[0, 0 ,0], [1, 1, 1], [2, 100, 2]], [[3, 3, 3], [4, 4, 4], [5, 5, 5]]]

print(tree1[3][2])
print(tree2[1][3][2])

第一个例子行得通,但第二个不行。Python如何处理“高维”嵌套列表的索引?你知道吗


Tags: 方法列表例子print底层tree2行得通tree1
3条回答

“查看”列表索引的一种方法是在列表上迭代枚举项,enumerate返回元素和索引。你知道吗

例如:

for index, element in enumerate(tree1):
  print (index, element)

# (0, [0, 0, 0])
# (1, [1, 1, 1])
# (2, [2, 100, 2])

你可以看到索引从0开始。 当您调用print(tree1[1])时,会得到#=> [1, 1, 1]

要深入挖掘列表,可以迭代嵌套元素,例如(我更改变量的名称):

for i_row, row in enumerate(tree1):
  for i_col, cell in enumerate(row):
    print(i_row, i_col, cell)

退货:

# (0, 0, 0)
# (0, 1, 0)
# (0, 2, 0)
# (1, 0, 1)
# (1, 1, 1)
# (1, 2, 1)
# (2, 0, 2)
# (2, 1, 100)
# (2, 2, 2)

例如,调用print(tree1[2][1]),返回#=> 100

tree2相同,您可以进一步挖掘一层。你知道吗

实际上,这两个都不应该起作用。在Python中,列表从0开始索引。这意味着要在tree1和tree2中打印100,您需要运行:

print(tree1[2][1])
print(tree2[0][2][1])

Python索引从0开始,因此示例:

>>> a=[1,2,3]
>>> a[0]
1
>>> a[1]
2
>>> a[2]
3

所以你的代码可以是:

print(tree1[2][1])
print(tree2[0][2][1])

相关问题 更多 >