我在理解单级列表,两级列表和三级列表是什么时遇到了一些麻烦。我想只是 eye-ball 它并知道它是一个或另一个,但我对括号感到困惑。
什么定义列表中的级别?
这被认为是三级列表吗?
[ [[5,6],7], 9]
或者这是一个三级列表?
[ [7,2], [[2,3],4], [[[5,6],7],9] ]
答案 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]]]
任何额外的图层或级别只会为此类比添加更多框。