2015年12月17日

リストに関するTip

set をアルゴリズム的に使ったテクニックを紹介します。

「リストの順番を保ったまま重複を削除する」という処理を考えます。処理の入出力例は以下のようになります。
 入力: [1, 1, 3, 3, 1, 2]
 出力: [1, 3, 2]

実装方法は色々とあるかと思いますが、set と sorted を使えば1行で実装可能です。

# 重複を削除する関数
>>> def remove_duplex(data):
...     return sorted(set(data), key=data.index)
... 

>>> remove_duplex([1, 1, 3, 3, 1, 2])
[1, 3, 2]  # 順番を保ったまま重複が削除される

0 件のコメント:

コメントを投稿