维持集合中的相对顺序

时间:2014-10-23 07:37:26

标签: python python-2.7 set

我有一个列表,其中包含一些重复的元素,从这个列表中我想生成一个列表,其中没有重复的元素,并且还维护列表中的订单。

我尝试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'])即保持相对的顺序已存在的元素。

怎么做?提前谢谢......

1 个答案:

答案 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