当字段#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')]