サイトアイコン Amelt.net

python:複数のリストから重複する値のみ抽出(積集合)するサンプルコード

Amelt

Amelt

This post is also available in: English-US (英語)

pythonを使っていて、複数あるリストの要素から、重複する値のみ抽出(積集合)するサンプルコードを備忘録代わりに書いています。
ポイントとして、set関数は戻り値がset型となるのでlist関数でlist型に変換している点また、そのリストは順不同のリストになっているのでsorted関数で並べ替えている点などを押さえておくと、その後のコード処理がスムーズになると思います。

丁寧に書いているサンプルコード(分割で関数処理)

# サンプルリスト
list_A = ["1","2","3","4","5"]
list_B = ["3","4","5","6","7"]
list_C = ["4","5","6","7","8"]

# 重複する値のみ抽出(積集合)
intersection_list = set(list_A) & set(list_B) & set(list_C)
print(type(intersection_list)) # <class 'set'> set型が戻り値
# リストに変換
intersection_list = list(intersection_list)
# 順不同のリストになっているのでソート
intersection_list = sorted(intersection_list)
print(intersection_list) # ['4', '5']

一括で書いているサンプルコード(一括で関数処理)

# 上記のコードをまとめて書いたら、下記のようなコードになる
list_A = ["1","2","3","4","5"]
list_B = ["3","4","5","6","7"]
list_C = ["4","5","6","7","8"]
# 
intersection_list = sorted(list(set(list_A) & set(list_B) & set(list_C)))
print(intersection_list) # ['4', '5']