我有一个如下列表
[('generators', 'generator'), ('game', 'games'), ('generator', 'generators'), ('games', 'game'), ('challenge', 'challenges'), ('challenges', 'challenge')]
对('game', 'games')
和('games', 'game')
有点相同,但是顺序不同。
我想要实现的输出
[('generators', 'generator'), ('games', 'game'), ('challenge', 'challenges')]
如何从上面的列表中删除配对?
任何建议,深表感谢。
答案 0 :(得分:4)
您可以在集合中使用无序的可哈希数据结构。 frozenset()
是您的朋友在这里:
In [7]: {frozenset(i) for i in your_list}
Out[7]:
{frozenset({'generator', 'generators'}),
frozenset({'game', 'games'}),
frozenset({'challenge', 'challenges'})}
请注意,为避免循环遍历列表,最好在创建列表时首先进行此操作。
答案 1 :(得分:1)
您可以对列表进行排序,然后使用列表理解
获取其他所有索引lista = [i for i in sorted(tups)[::2]]
# [('challenge', 'challenges'), ('game', 'games'), ('generator', 'generators')]