Python - リストの重複排除、4つの方法

リストに重複したデータがある場合は、重複した値をすべて削除する方法を紹介します。

たとえば、 original_listから重複した値22と10を削除して、 result_listには2つ以上のデータが含まれないようにすることができます。

original_list = [10, 22, 19, 22, 1, 10, 5]
result_list = [10, 22, 19, 1, 5]

1. set() を使用してリストの重複を削除する

set() は重複した値を受け入れません。したがって、listをsetに変更すると重複した値が削除され、その後にlistに変更すると重複した値が削除されたリストになります。

my_list = [10, 22, 19, 22, 1, 10, 5]
result = list(set(my_list))
print(result)

Output:

[1, 5, 10, 19, 22]

2. for loop(繰り返し文)を利用してリスト重複を削除

for loopを使用して、直接重複した値をフィルタリングして削除できます。

my_list = [10, 22, 19, 22, 1, 10, 5]
result = []

for i in my_list:
    if i not in result:
        result.append(i)

print(result)

Output:

[10, 22, 19, 1, 5]

3. comprehensionを使ってリストを重複排除

次のように list comprehension として実装することもできます。 for loopで実装したものとほぼ同じです。

my_list = [10, 22, 19, 22, 1, 10, 5]
result = []
[result.append(x) for x in my_list if x not in result]
print(result)

Output:

[10, 22, 19, 1, 5]

4. dict.fromkeys() を使用してリストの重複を削除する

dict.fromkeys() は辞書生成のためのキーを抽出します。 keyは重複した値と同じではないため、 fromkeys()からリストの重複した値を削除します。 その戻り値をlistに変換できます。

my_list = [1, 2, 3, 2, 5, 1]

new_list = list(dict.fromkeys(my_list))

print(new_list)

Output:

[1, 2, 3, 5]

References

Related Posts

codechachaCopyright ©2019 codechacha