我有一些函数可以检索项目列表、ITEN矩阵。 检索矩阵后,我需要将iten放入一个新列表中,并避免重复。 使用嵌套for循环很容易,但我想知道如何在列表理解中执行相同的操作。 我的问题是设置条件以避免插入重复的: 大概是这样的:
伪代码:
new= [['Captain Marvel', 'Avengers: Infinity War', 'Ant-Man And The Wasp', 'The Fate Of The Furious', 'Deadpool 2'], ['Inhumans', 'The Fate Of The Furious', 'Venom', 'American Assassin', 'Black Panther']]
lista2 =[]
for movieL in new:
lista2 = [val
for sublist in new
for val in sublist
#if val not in lista2 this does not work
]
结果:
['Captain Marvel', 'Avengers: Infinity War', 'Ant-Man And The Wasp', 'The Fate Of The Furious', 'Deadpool 2', 'Inhumans', 'The Fate Of The Furious', 'Venom', 'American Assassin', 'Black Panther']
如果保留原始顺序在结果中并不重要,则可以利用集合,并使用集合并集操作:
或者,如果您严格需要使用理解语法(在本例中为生成器理解),您可以使用:
如果排序很重要:
如果没有关系:
您可以使用
itertools.chain.from_iterable()
将所有列表展平为一个列表,并应用set()
删除重复列表相关问题 更多 >
编程相关推荐