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すればよい。ここはお好みで。
同じタグの記事
- BOM付きUTF-8からBOMを除去するpython
- jythonのヒープメモリ設定
- Kotlin1.2.50がリリースされていた
- macOSをHigh Sierraに更新した。スクリプト実行環境のバージョンは変わったのか
- macOSをMojaveに更新した。スクリプト実行環境のバージョンは変わったか
- pathlib.Pathを調べる
- pyenvでpython環境をインストール
- pyenvとvirtualenvでpython環境を構築
- python unpack
- python3で数値のlistを文字列のlistに変換
同じカテゴリの記事