首页 > 解决方案 > 在多个列表中查找公共元素,如果它们在 Python 中匹配,则删除数据

问题描述

我有一个包含很多页面的文档,我正在尝试提取每页的前 3 行。

我这样做,我的输出是多个列表,例如:

['hello','','data']
['hello','','data']
['test','','data']

我想删除任何匹配的列表,例如,第 1 页和第 2 页有相同的 3 行。我想从相关页面的原始文档中删除这 3 行。我怎么能这样做呢?

到目前为止,我已经尝试过使用集合和交集功能。例子:

for item in line_list:
    common = list(set(line_list[0]).intersection(line_list[2:]))
    print (common)

我在这里得到的只是空列表。我认为这可能是我的语法,但不确定。有人可以请教吗?

标签: pythonlistset

解决方案


set.intersection不采用可迭代的可迭代对象(看起来您正在尝试传递),但它确实允许任意数量的参数,它期望是可迭代的。

尝试:

common = list(set(line_list[0]).intersection(*line_list[2:]))

谷歌搜索“splat operator python”以获取更多信息*


推荐阅读