如果你不关心效率,这是 O(n*m)
>>> sorted(set(l1), key=l1.index)
['a', 2, 3, 0, 9.0, 6, 'b']
使用中间字典更复杂,但是 O(n+m*logm)
其中 n 是 l1 中的元素数量,m 是 l1 中的唯一元素数量
>>> l1 = ['a',2,3,0,9.0,0,2,6,'b','a']
>>> d1=dict((k,v) for v,k in enumerate(reversed(l1)))
>>> sorted(d1, key=d1.get, reverse=True)
['a', 2, 3, 0, 9.0, 6, 'b']
在Python3.1中你有OrderedDict所以这很容易
>>> l1 = ['a',2,3,0,9.0,0,2,6,'b','a']
>>> list(OrderedDict.fromkeys(l1))
['a', 2, 3, 0, 9.0, 6, 'b']