重複した要素をもつリストから、その重複要素を削除することを考える。set関数は重複要素を削除できるが、順序が保証されない。
test_data = [1,2,3,4,5,1,2,3]
下記の方法が計算量も抑えつつ、順序を保持したまま重複要素を削除できる、らしい。()
sorted(set(test_data), key=test_data.index)
http://d.hatena.ne.jp/t-fridge/20080323/1206217930 より
効率的な方法が見つかったので下記の内容を削除 そこでif文を使って重複しない要素のみを一時的なリストに格納する。
def deldup(data): tmp = [] [tmp.append(d) for d in data if d not in tmp] return tmp
result = deldup(test_data) # => [1,2,3,4,5]