Python:删除随机命令中的一对重复字符串

2024-04-28 11:35:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个清单如下

[('generators', 'generator'), ('game', 'games'), ('generator', 'generators'), ('games', 'game'), ('challenge', 'challenges'), ('challenges', 'challenge')]

('game', 'games')('games', 'game')有点相同,但顺序不同。你知道吗

我要达到的目标

[('generators', 'generator'), ('games', 'game'), ('challenge', 'challenges')]

如何从上面的列表中删除这样的对?你知道吗

任何建议,非常感谢。你知道吗


Tags: game目标列表顺序generator建议gameschallenge
2条回答

可以在集合中使用无序的哈希数据结构。frozenset()是你的朋友吗

In [7]: {frozenset(i) for i in your_list}
Out[7]: 
{frozenset({'generator', 'generators'}),
 frozenset({'game', 'games'}),
 frozenset({'challenge', 'challenges'})}

请注意,为了避免在列表上循环,最好在创建列表时首先这样做。你知道吗

您可以对列表进行排序,然后使用列表理解

lista = [i for i in sorted(tups)[::2]]
# [('challenge', 'challenges'), ('game', 'games'), ('generator', 'generators')]

相关问题 更多 >