python - 在多个列表中查找公共元素,如果它们在 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)
我在这里得到的只是空列表。我认为这可能是我的语法,但不确定。有人可以请教吗?
解决方案
set.intersection
不采用可迭代的可迭代对象(看起来您正在尝试传递),但它确实允许任意数量的参数,它期望是可迭代的。
尝试:
common = list(set(line_list[0]).intersection(*line_list[2:]))
谷歌搜索“splat operator python”以获取更多信息*
。
推荐阅读
- tensorflow - 在张量流中将一个单词剥离为其组成字符
- python - 在同一类下使用更改 xpath 刮取元素
- java - HBase shell 崩溃并给出 CMSIncrementalMode 错误
- angular - 如何在 ng-bootstrap Carousel 中获取索引图像
- unity3d - 奇怪的 Instatiate 健康栏
- python - 如何格式化从多对多关系访问的元素?
- visual-studio-2017 - Azure DevOps 中已删除的项目以其 ID 保留在 Visual Studio 中
- linux - 从win10到linux的SSH连接脚本
- android - 使用 Android Studio 创建新的 Flutter 项目时出现问题
- macos - Visual Studio 社区冻结在 macOS 上创建新的 Xamarin 项目