ホームページ >バックエンド開発 >Python チュートリアル >要素の元の順序を維持しながら集合演算を実行するにはどうすればよいですか?

要素の元の順序を維持しながら集合演算を実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-16 16:41:10249ブラウズ

How Can I Perform Set Operations While Preserving the Original Order of Elements?

集合演算と順序保持

セットは優先順位の高い順序のないデータ構造であるため、リストをセットに変換すると要素の順序が変わります。会員テスト。元の挿入順序は保持されません。

セット操作での順序の保持

最初の順序を失わずにセット操作を実行するには、次のオプションを検討してください。

1.集合の差分のリスト内包表記

通常のリストがあり、順序を維持しながら要素のセットを削除する必要がある場合は、リスト内包表記を使用します:

a = [1, 2, 20, 6, 210]
b = set([6, 20, 1])
[x for x in a if x not in b]  # [2, 210]

2 。順序付きセットの辞書キー

高速メンバーシップ テストと挿入順序の保存を備えたデータ構造の場合、Python 辞書 (Python 3.7 以降) のキーを使用します。

a = dict.fromkeys([1, 2, 20, 6, 210])
b = dict.fromkeys([6, 20, 1])
dict.fromkeys(x for x in a if x not in b)  # {2: None, 210: None}

3. Collections.OrderedDict (レガシー サポート)

古い Python バージョンの場合は、collections.OrderedDict:

a = collections.OrderedDict.fromkeys([1, 2, 20, 6, 210])
b = collections.OrderedDict.fromkeys([6, 20, 1])
collections.OrderedDict.fromkeys(x for x in a if x not in b)  # OrderedDict([(2, None), (210, None)])
に依存します。

以上が要素の元の順序を維持しながら集合演算を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PyTorch の花次の記事:PyTorch の花