Python:如何在遍历列表时只保留所有先前子列表中的元素?

标签 python list loops integer list-comprehension

这就是我所拥有的:

 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/

相关文章:

python - 如何在OpenCV中检测数独网格板

python - xml 解析以检索特定标签

java - Apache Storm - 初始化错误(Worker)

Python rawkit 如何从 RAW 文件中读取元数据值?

循环中字符串的 Python 行为

c# - 链接的 View 列表/列表删除选定的项目

python - 在 Python 中扩展一个数字 block

Python:列表理解与 lambda

javascript - while循环javascript的回调方法

loops - Clojure 循环读取一个额外的