如何从元组列表中删除重复项



当字段#2 (f#2)除了字段1 (f#1)之外都相同时,如何从这个元组中删除重复

#!/usr/bin/env python3
group = (#f#1        f#2
(1658, 'alps no shoujo heidi'),
(1659, 'alps no shoujo heidi'),
(1660, 'alps no shoujo heidi'),
(1661, 'alps no shoujo heidi'),
(1662, 'alps no shoujo heidi'),
(1663, 'alps no shoujo heidi'),
)
titles = list(dict.fromkeys(group))
print(titles)

我正在尝试得到这个输出:

(1663, 'alps no showjo heidi')

(1658, 'alps no shoujo heidi')

这是一种通过保存之前遇到的所有字符串来减少列表的方法:

already_found = []
reduced_group = []
for item in group:
if item[1] not in already_found:
already_found.append(item[1])
reduced_group.append(item)

print(reduced_group)

这样,您将始终保留包含重复String的第一个元组。

您当前的用例只获取一个元素-

group = (#f#1        f#2
(1658, 'alps no shoujo heidi'),
(1659, 'alps no shoujo heidi'),
(1660, 'alps no shoujo heidi'),
(1661, 'alps no shoujo heidi'),
(1662, 'alps no shoujo heidi'),
(1663, 'alps no shoujo heidi'),
)
titles = list(dict.fromkeys({t[1]: t for t in group}.values()))
print(titles[0])

(1663, 'alps no shoujo heidi')

用例2:

group = (#f#1        f#2
(1658, 'alps no shoujo heidi1'),
(1659, 'alps no shoujo heidi2'),
(1660, 'alps no shoujo heidi3'),
(1661, 'alps no shoujo heidi1'),
(1662, 'alps no shoujo heidi2'),
(1663, 'alps no shoujo heidi4'),
)
titles = list(dict.fromkeys({t[1]: t for t in group}.values()))
print(titles)

文稿

[(1661, 'alps no shoujo heidi1'), (1662, 'alps no shoujo heidi2'), (1660, 'alps no shoujo heidi3'), (1663, 'alps no shoujo heidi4')]

最新更新