Python:从列表列表中检索项目

时间:2018-12-18 02:57:50

标签: python python-3.x list

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

例如,说我要打印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如何处理“高维”嵌套列表的索引?

3 个答案:

答案 0 :(得分:1)

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

{{1}}

答案 1 :(得分:0)

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

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

所以您的代码可能是:

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

答案 2 :(得分:0)

“查看”列表索引的一种方法是遍历其枚举项,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相同,您可以在其中进一步深入一层。