ホームページ > よくある問題 > Python リストから重複を削除する方法

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

百草
リリース: 2023-06-14 13:25:07
オリジナル
13189 人が閲覧しました

Python リスト重複排除方法: 1. リスト重複排除を実装する for ループ、重複排除後も元の順序は変更されません; 2. リスト導出重複排除、重複排除後も元の順序は変更されません; 3. セット変換関数「set」 ()" はリストの重複排除を実装します。原則として、同じセット内の要素の重複は許可されません。4. 新しい辞書メソッドはリストの重複排除を実装します。原則として、辞書の「キー」は重複が許可されません。5 . 削除リストに重複したデータがあります。重複がある限りすべて削除してください。

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

このチュートリアルのオペレーティング システム: Windows 10 システム、Python バージョン 3.11.2、DELL G3 コンピューター。

Python リストから重複を削除する方法:
1. for ループを使用してリストから重複を削除します

このメソッドで重複を削除した後、元の順序は変更されません。 。

# for循环实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = []
for l1 in list1:
    if l1 not in list2:
        list2.append(l1)
print(list2)
ログイン後にコピー

結果: ['a', 'b', 1, 3, 9]

2. リスト内包表記を使用して重複を削除します
この方法を使用して重複を排除した後も、元の順序は変更されません。

# 使用列表推导式去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
res = []
[res.append(i) for i in list1 if i not in res]
print(res)
ログイン後にコピー

結果: ['a', 'b', 1, 3, 9]

3. セット変換関数 set() を使用してリストの重複排除を実装します
原則: 同じ set の要素間での重複は許可されません

# set()列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
print(list2)
ログイン後にコピー

結果: [1, 3, 9, 'b', 'a']
問題: set() 関数を使用します重複排除後、自動的にソートされ、元のリストの順序が変わります。
解決策は 2 つあります:
最初の方法は、sort() メソッドを使用することです

# # 第一种方法,sort()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
list2.sort(key=list1.index)
print(list2)
ログイン後にコピー

結果: ['a ', 'b', 1, 3, 9]
注: sort() メソッドには戻り値がなく、リスト要素はその場でソートされます。
2 番目のメソッドは、sorted( ) function

# 第二种方法,sored()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = sorted(list(set(list1)), key=list1.index)
print(list2)
ログイン後にコピー

結果: ['a', 'b', 1, 3, 9]
注: Python 組み込み関数sorted() 関数は新しいリストを返しますが、何も作成しません。元のリストへの変更

4. 新しい辞書メソッドを使用してリストの重複排除を実現します
原則: 辞書の「キー」を繰り返すことは許可されません
Afterこの方法で重複を排除しても、元の順序は変更されません。

# 使用新建字典实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
dic = {}
dic = dic.fromkeys(list1).keys()
print(list(dic))
ログイン後にコピー

結果: ['a', 'b', 1, 3, 9]

5. リスト内の重複データを削除します
上記重複排除方法は 4 つあり、いずれも 1 つを保持し、その他を削除します。
次の方法では、重複がある限り何も保持しません。

# 删除存在重复的值,不保留
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = [i for i in list1 if list1.count(i) == 1]
print(list2)
ログイン後にコピー

結果: ['b', 1, 3]

上記はリストから重複を削除する 5 つの方法であり、必要に応じて対応する方法を選択できます。

以上がPython リストから重複を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート