这就是我所拥有的:
lst = [[1,4,5,9], [4,5,7,9], [6,2,9], [4,5,9], [4,5]]
我想创建一个新列表,其中子列表仅包含与所有先前子列表共享的元素。
它应该是这样的:
new_lst = [[1,4,5,9], [4,5,9], [9], [9], []]
我尝试将整数转换为字符串并对其进行迭代,但我似乎无法获得正确的结果。我是 Python 新手,非常感谢任何帮助!
最佳答案
如果您不关心项目的顺序,您可以使用基于set
的方法:
last = set(lst[0])
res = [lst[0]]
for item in lst[1:]:
last &= set(item)
res.append(list(last))
此处,res
包含列表的结果列表。重要的行是 last &= set(item)
,它计算前一个项目和当前项目之间的交集。
关于Python:如何在遍历列表时只保留所有先前子列表中的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34582729/