Python

【Python】複数のリストから重複する要素を削除する

リストに存在するユニークな要素を知りたい時、リストから重複する要素を削除したい時などに、便利な方法。

集合を使用する。

pandasだとSeriesに対してunique()でユニークな要素を取得できる。

 

リストから重複を削除する

集合を利用する。

list_a = [1, 2, 3, 4, 5, 4, 3, 2, 1, 0]
// set()で集合にすることでリストから重複する要素を削除する
// list()でリストに戻す
unique_list_a = list(set(list_a))
print(f"{unique_list_a=}")
-> unique_list_a=[0, 1, 2, 3, 4, 5]

 

複数のリストから重複を削除する

複数のリストから重複を削除する場合、set()で集合を作成する際に、各リストを展開して1つのリストにしてやる必要がある。

list_a = [0, 1, 2, 3, 4]
list_b = [3, 4, 5, 6, 7, 8]
list_c = [5, 6, 7, 8, 9, 10, 11]
// set()に引数を渡す際に各リストを*で展開し、list_a, list_b, list_cを1つのリストにする
unique_list_abc = list(set([*list_a, *list_b, *list_c]))
print(f"{unique_list_abc=}")
-> unique_list_abc=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]