可能重複:
How do you remove duplicates from a list in Python whilst preserving order?如何刪除列表中的重複值?
讓我們考慮名單:
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']
我想刪除這些重複的值列表-x和想要的結果爲:
y = ['a', 'b', 'c', 'd', 'z']
可能重複:
How do you remove duplicates from a list in Python whilst preserving order?如何刪除列表中的重複值?
讓我們考慮名單:
x = ['a', 'b', 'c', 'c', 'a', 'd', 'z', 'z']
我想刪除這些重複的值列表-x和想要的結果爲:
y = ['a', 'b', 'c', 'd', 'z']
如果順序並不重要,使用一組:
>>> list(set(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']))
['a', 'p', 'c', 'b', 'd']
如果訂購確實物質,使用OrderedDict:
>>> from collections import OrderedDict
>>> OrderedDict.fromkeys(['a', 'b', 'c', 'c', 'a', 'd', 'p', 'p']).keys()
['a', 'b', 'c', 'd', 'p']
你也可以使用
y=[ x[i] for i in range(len(x)) if not x[i] in x[:i]]
我認爲這將是最簡單的解決方案。
這是一個O(n²),它並不簡單。 – 2012-07-18 12:48:21
嗯,我沒有說這是最快的,但它是一個單線...... – hfhc2 2012-07-18 12:49:47
@ hfhc2:OrderedDict解決方案也是如此。 – 2012-07-18 12:51:26
元素的順序是否重要? – 2012-07-18 12:39:30
他們在這裏回答了這個問題。有或沒有保存順序:http://stackoverflow.com/questions/480214/how-do-you-remove-duplicates-from-a-list-in-python-whilst-preserving-order – 2012-07-18 12:44:12
'z'或'P'有很大的不同,是嗎? – 2012-07-18 12:50:01