了解Python中的嵌套列表

问题描述 投票:3回答:4

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

什么定义列表中的级别?

这被认为是三级列表吗?

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

或者这是一个三级列表?

​[ [7,2], [[2,3],4], [[[5,6],7],9] ]
python arrays list nested-lists
4个回答
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

希望这能为您解决问题。


0
投票

python中的基本列表:

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

列表中的列表:

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

列表中列表内的列表:

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

你可以永远这样下去


0
投票

当谈论某种容器中的级别(例如列表,元组或字典)时,人们正在谈论嵌套。因此,单级列表中不包含其他列表:

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']

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


0
投票

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

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

my_li = [1,2,3]

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

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

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

是一个包含3个盒子的盒子,每个盒子都有一个值。

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.