2024-04-29 11:07:33 发布
网友
我有一个代码块,它提供了一个列表,其中包含一些三重嵌套列表:
my_list = [[['item1','item2']], [['item3', 'item4']]]
我想:
有什么建议吗?在
一种简单但有效的方法是使用^{}展开三重嵌套列表:
>>> 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)的复杂性。在
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也可以使嵌套级别变平,但这是一个等待发生的性能灾难,因为它有二次运行时:
sum
对于一个5000长度的my_list来说,这是一个420x的减速,这根本不是一个很长的列表。更糟糕的是长名单。在
my_list
一种简单但有效的方法是使用^{} 展开三重嵌套列表:
对于大小为
n
的列表,它具有O(n)
的复杂性。在执行以下操作:
使用列表理解从每个子列表中选择一个子列表:
使用
^{pr2}$sum
也可以使嵌套级别变平,但这是一个等待发生的性能灾难,因为它有二次运行时:对于一个5000长度的
my_list
来说,这是一个420x的减速,这根本不是一个很长的列表。更糟糕的是长名单。在相关问题 更多 >
编程相关推荐