三重嵌套列表Python

2024-04-29 11:07:33 发布

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

我有一个代码块,它提供了一个列表,其中包含一些三重嵌套列表:

my_list = [[['item1','item2']], [['item3', 'item4']]]

我想:

^{pr2}$

有什么建议吗?在


Tags: 代码列表my建议listitem1pr2item2
3条回答

一种简单但有效的方法是使用^{}展开三重嵌套列表:

>>> import itertools
>>> my_list = [[['item1','item2']],[['item3','item4']]]
>>> my_list = list(itertools.chain.from_iterable(my_list))
>>> my_list
[['item1', 'item2'], ['item3', 'item4']]

对于大小为n的列表,它具有O(n)的复杂性。在

执行以下操作:

my_list = [j for i in my_list for j in i ]

使用列表理解从每个子列表中选择一个子列表:

>>> my_list = [item[0] for item in my_list]
[['item1', 'item2'], ['item3', 'item4']]

使用sum也可以使嵌套级别变平,但这是一个等待发生的性能灾难,因为它有二次运行时:

^{pr2}$

对于一个5000长度的my_list来说,这是一个420x的减速,这根本不是一个很长的列表。更糟糕的是长名单。在

相关问题 更多 >