Pythonでリスト、タプルの重複除去

Pythonでリスト、タプルの重複除去

特殊なデータストアからデータを抽出し、返却するバッチ処理がある。そのバッチ処理は定期実行され、キューイングはXMLファイル行われる。
同じ時間の処理で、返却先が異なるが同じデータへのリクエストが来ることがある。
同じデータをデータストアに何度もアクセスしたくない。リクエストをListにため込んでから、重複を除去して問い合わせを行う。
Listの重複をどのように行うか。

setを利用する

1
2
3
4
5
6
7
work_list = []
for x in range(10):
    work_list.append(x % 3)
print(work_list)

target_set = set(work_list)
print(target_set)

このプログラムを実行すと、work_listは

1
[0, 1, 2, 0, 1, 2, 0, 1, 2, 0]

target_setは

1
{0, 1, 2}

と出力される。

まとめ

リストの重複除去が簡単に行えた。
しかし、順序は保証されないようなので、順序が重要な場合は自身でイテレートして重複を除去する必要がある。
または、そもそもwork_listにappendする前に、if xx not in work_list:でリストに含まれないことを確認してからappendすればよい。ここはお好みで。

同じタグの記事
同じカテゴリの記事