了解Python中的嵌套列表

时间:2016-02-14 23:56:00

标签: python arrays list nested-lists

我在理解单级列表两级列表三级列表是什么时遇到了一些麻烦。我想只是 eye-ball 它并知道它是一个或另一个,但我对括号感到困惑。

什么定义列表中的级别?

这被认为是三级列表吗?

​[ [[5,6],7], 9]

或者这是一个三级列表?

​[ [7,2], [[2,3],4], [[[5,6],7],9] ]

4 个答案:

答案 0 :(得分:4)

嵌套列表的概念并不十分复杂,它只是意味着您可以在列表中包含列表。在该列表中,您可以有另一个列表,依此类推。

术语“一级”,“两级”或“n”级列表未广泛使用,使用术语嵌套级别更为常见。因此,让我们编写一个小算法来可视化嵌套级别:

>>> def nestprint(lst, level=0):
...     print('{} is at nesting level {}'.format(lst, level))
...     for item in lst:
...         if isinstance(item, list):
...             nestprint(item, level+1)

对于给定的列表,这将打印出每个列表的嵌套级别。以下是它为您的示例所做的事情:

>>> nestprint([[[5,6],7],9])
[[[5, 6], 7], 9] is at nesting level 0
[[5, 6], 7] is at nesting level 1
[5, 6] is at nesting level 2
>>>    
>>> nestprint([[7,2],[[2,3],4],[[[5,6],7],9]])
[[7, 2], [[2, 3], 4], [[[5, 6], 7], 9]] is at nesting level 0
[7, 2] is at nesting level 1
[[2, 3], 4] is at nesting level 1
[2, 3] is at nesting level 2
[[[5, 6], 7], 9] is at nesting level 1
[[5, 6], 7] is at nesting level 2
[5, 6] is at nesting level 3

希望这能为你解决问题。

答案 1 :(得分:0)

python中的基本列表:

[1, 2, 3, 4, 5 ];

列表中的列表:

[1, 2, [1, 2]];

列表中列表中的列表:

[1, 2, [1, 2, [1, 2]]];

你可以永远这样下去

答案 2 :(得分:0)

当谈论某种容器中的关卡(例如list,tuple或dict)时,人们正在谈论嵌套。因此,单级列表中不包含其他列表:

one_level = [1, 2, 3, 4]

将列表添加到另一个列表后,您将拥有一个两级列表:

two_level[['a', 'b', 'c'], ['d', 'e', 'f']]

依旧等等:

three_level = [[1, 2, 3], [[4, 5], [6, 7]], [8, 9, 10]]

four_level = [[[['this', 'that']], 'these'], 'those']

如您所见,嵌套的顺序无关紧要,只有嵌套的深度。

答案 3 :(得分:0)

考虑它的最佳方式是容器意义。

在一维列表/数组中,将其视为包含数据的单个框。 所以例如

my_li = [1,2,3]

是一个包含值1,2,3。

的框

二维列表就像另一个盒子里面的一个盒子。如果你打开第一个框,你会在里面找到许多包含信息的框。

my_li_two = [[1],[2],[3]]

是一个包含3个框的框,每个框都包含一个值。

第三级或三维列表就像二维列表一样,除了现在它是一个包含包含值框的框的大框。

my_li_three = [[[1,2]],[[3]]]

任何额外的图层或级别只会为此类比添加更多框。