python - 如果元组的第一个值是另一个元组的副本,如何从元组列表中删除元组
问题描述
如果元组的第一个值与另一个元组重复,我需要从元组列表中删除元组。例如这是一个元组列表
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('genera', 23, 'https://en.wikipedia.org/wiki/Genus'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Airport'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Region'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Region'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Islands',28,'https://en.wikipedia.org dddfdfdf/wiki/'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
输出必须是这样的:
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('genera', 23, 'https://en.wikipedia.org/wiki/Genus'),
('Islands',28,'https://en.wikipedia.org dddfdfdf/wiki/'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island')
我正在尝试在网络上搜索的所有内容
解决方案
您好,欢迎来到 Stack Overflow。你的问题提到了一个元组列表。因此,我假设您的列表如下所示:
all =[('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('genera', 23, 'https://en.wikipedia.org/wiki/Genus'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Airport'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Region'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Region'),
('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland'),
('Islands',28,'https://en.wikipedia.org dddfdfdf/wiki/'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island')]
如果是这种情况,根据第一个值获得唯一结果的最简单方法是将元组列表更改为一个集合(始终唯一并在以下 for 循环中保存可能许多不必要的迭代),然后以这种方式循环:
unique_all = list(set(all))
first_values = []
for t in unique_all:
if t[0] in first_values:
unique_all.remove(t)
else:
first_values.append(t[0])
print(unique_all)
输出将是:
[('Auckland', 23, 'https://en.wikipedia.org/wiki/Auckland_Airport'),
('South Island', 29, 'https://en.wikipedia.org/wiki/South_Island'),
('genera', 23, 'https://en.wikipedia.org/wiki/Genus'),
('Islands', 28, 'https://en.wikipedia.org dddfdfdf/wiki/')]
我想这就是你的问题所要求的。
推荐阅读
- apache-kafka - Kafka Connect 源连接器的任务频繁上下(RUNNING 或丢失)
- c - 从二进制文件读取到结构的动态数组
- axios - Redux-Saga 响应未定义
- django - Django,无法在前端下载 mp3 文件
- mysql - 使用“分组依据”
- java - 如何在屏幕上的特定位置设置视图?
- terraform - 在已经具有 for_loop 的资源上使用 for 表达式循环遍历项目的本地映射
- ios - Xcode 的 XIB 和 Storyboard 的 UIElements 不可见
- .net - .NET Core Web API - 验证 Xamarin 应用程序 - Azure
- python - Kivy + 3D - 仅允许 65535 个索引。我能处理这个吗?