Skip to content

Instantly share code, notes, and snippets.

@mizunototori
Last active September 20, 2016 02:31
Show Gist options
  • Select an option

  • Save mizunototori/99adcfbac266f2727c37c69a741357c2 to your computer and use it in GitHub Desktop.

Select an option

Save mizunototori/99adcfbac266f2727c37c69a741357c2 to your computer and use it in GitHub Desktop.
リストから順序を保ったまま重複要素を削除する

重複した要素をもつリストから、その重複要素を削除することを考える。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]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment