我有一个列表,其中包含一些重复的元素,从这个列表中我想生成一个列表,其中没有重复的元素,并且还维护列表中的订单。
我尝试set(['1','1','2','3','4','4','5','2','2','3','3','6'])
并将输出设为set(['1', '3', '2', '5', '4', '6'])
但我希望输出为 set(['1','2','3','4','5','6'])即保持相对的顺序已存在的元素。
怎么做?提前谢谢......
答案 0 :(得分:0)
一种方法:
In [9]: x = ['1','1','2','3','4','4','5','2','2','3','3','6']
In [10]: s = set()
In [11]: y = []
In [12]: for i in x:
...: if i not in s:
...: y.append(i)
...: s.add(i)
...:
In [13]: y
Out[13]: ['1', '2', '3', '4', '5', '6']
正如Martijn所指出的那样,根据定义,集合是无序的,因此您需要一个列表来存储结果。另请参阅this old question。