【发布时间】:2018-09-27 06:30:34
【问题描述】:
我有一个元组列表:
ap = [('unknown', (81, 717, 236, 562)), ('unknown', (558, 1033, 825, 765)), ('unknown', (96, 1142, 225, 1013)), ('Jenny', (558, 1033, 825, 765)), ('unknown', (477, 1233, 632, 1078)), ('unknown', (741, 1199, 868, 1070)), ('Garry', (53, 282, 182, 153)), ('Sam', (477, 1233, 632, 1078)), ('Chen', (593, 283, 779, 97)), ('Steve', (741, 1199, 868, 1070)), ('unknown', (53, 282, 182, 153)), ('Harry', (81, 717, 236, 562)), ('unknown', (593, 283, 779, 97))]
如果元组的第二项与任何其他元组相同,我想对其进行排序,然后将第一项的元组保留为“未知”,并删除第一项为“未知”的元组。输出应该是这样的:
ap = [('Harry',(81, 717, 236, 562)), ('Jenny', (558, 1033, 825, 765)), ('unknown', (96, 1142, 225, 1013)), ('Sam', (477, 1233, 632, 1078)), ('Steve', (741, 1199, 868, 1070)), ('Garry', (53, 282, 182, 153)), ('Chen', (593, 283, 779, 97))]
我试过这段代码:
for i in ap:
for j in ap:
if i[1] == j[1]:
if i[0] == "unknown":
del i
else:
del j
但它给出了这个错误:
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
NameError: name 'i' is not defined
这有什么问题?
【问题讨论】:
-
您正在删除
j循环中的i,当j再次循环返回时,它找不到i,因为它将在j循环完成后重新初始化。
标签: python python-3.x tuples