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']