python - 从元组的元组中消除重复值
问题描述
我想使用循环一一检索如下结果:
result=((1, 'name1', 'Noah'),(1, 'name2', 'Liam'),(2, 'name3', 'Mason'),(3, 'name5', 'Mason'))
tupe = ((1, 'name1', 'Noah'),(1, 'name2', 'Liam'),(2, 'name3', 'Mason'),(2, 'name4', 'Mason'),(3, 'name5', 'Mason'))
这是我尝试过的代码,但它没有给出预期的输出:
for rowx in tupe:
for rowy in tupe:
if rowx[0] == rowy[0]:
if rowx[2] != rowy[2]:
print(rowx)
解决方案
您可以使用字典理解来消除基于索引 0 和 2 的重复项:
tupe = ((1, 'name1', 'Noah'),
(1, 'name2', 'Liam'),
(2, 'name3', 'Mason'),
(2, 'name4', 'Mason'),
(3, 'name5', 'Mason'))
print(tuple({(x[0], x[2]): x for x in tupe[::-1]}.values())[::-1])
输出:
((1, 'name1', 'Noah'), (1, 'name2', 'Liam'), (2, 'name3', 'Mason'), (3, 'name5', 'Mason'))
在重复的情况下,我颠倒了在结构中优先考虑元素的元组,但是如果您不介意选择哪些重复项或想要优先考虑最后一个项目,则可以跳过此组件;这是额外的工作。
推荐阅读
- javascript - 使用 javascript 放置范围
- android - Unity 中的 MultiDex 后 APK dex 中不存在字节码
- django - 在将静态文件托管在任何地方之前,如何在 Django 中部署静态文件?
- python - Flask 没有在 Centos7 中释放内存
- postgresql - 返回“Hello”的 SQL 查询 [column_name]
- ios - 如何保护 iOS 应用程序中的 awsconfiguration.json 数据详细信息?
- javascript - 表中 SQL 值的 Javascript 开始时间
- c++ - 在 Visual Studio 中查找非法内存访问
- database - 客户希望数据库中的所有数据都加密,如何对查询字段进行高效加密?
- typescript - typescript unhandledRejection Promise