ホームページ >バックエンド開発 >Python チュートリアル >要素の元の順序を維持しながら集合演算を実行するにはどうすればよいですか?
集合演算と順序保持
セットは優先順位の高い順序のないデータ構造であるため、リストをセットに変換すると要素の順序が変わります。会員テスト。元の挿入順序は保持されません。
セット操作での順序の保持
最初の順序を失わずにセット操作を実行するには、次のオプションを検討してください。
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 サイトの他の関連記事を参照してください。