0102: 順序を保つ重複除去¶
問題¶
文字列のイテラブル values から、重複を取り除いたリストを作る関数 dedupe(values) を実装してください。
同じ文字列が複数回現れる場合は、最初に現れた位置だけを残します。
制約¶
- 返り値はリストです。
- 返り値の順序は、各文字列が最初に現れた順序とします。
- 入力をリストに変換しなくても処理できるようにしてください。
- 入力がリストであっても、元のリストを変更してはいけません。
例¶
>>> dedupe(["red", "blue", "red", "green", "blue"])
['red', 'blue', 'green']
>>> dedupe([])
[]
>>> dedupe(x for x in ["a", "a", "b"])
['a', 'b']
発展¶
大文字と小文字を区別せずに重複を判定する版を書いてください。
参考¶
- 『Python Distilled』第1章「リスト」
- 『Python Distilled』第1章「集合」
- 『Python Distilled』第1章「イテレーションとループ」