ホームページ > バックエンド開発 > Python チュートリアル > 条件に基づいてリストを効率的に分割するにはどうすればよいですか?

条件に基づいてリストを効率的に分割するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-13 16:23:20
オリジナル
396 人が閲覧しました

How Can I Efficiently Partition a List Based on a Condition?

条件に基づいてリストを分割する

特定の条件に基づいてリストを 2 つに分割する場合、リストを 2 回反復したくなります。次のように 2 つの新しいリストを作成します:

good = [x for x in mylist if x in goodvals]
bad = [x for x in mylist if x not in goodvals]
ログイン後にコピー

ただし、このアプローチには 2 つの別々のリストが必要です。リストを反復処理するため、非効率になる可能性があります。パフォーマンスを向上させるには、条件付き追加を伴う手動反復の使用を検討してください。

good, bad = [], []
for x in mylist:
    (bad, good)[x in goodvals].append(x)
ログイン後にコピー

このコードでは:

  • 分割された要素を格納するために、良いリストと悪いリストの 2 つの空のリストを初期化します。 .
  • mylist の要素を繰り返し処理します。
  • 各要素 x について、式 (悪い, 良い)[x in 良いvals] は、良い値の条件 x に基づいて適切なリストを選択します。
  • この式は、x が条件を満たさない場合は悪いと評価され、それ以外の場合は良いと評価されます。
  • append メソッドを使用して、選択されたリストに x を追加します。

このアプローチでは、2 つの別々の反復の必要性が回避され、パフォーマンスが向上します。リストの走査回数が 2 回から 1 回に減ります。また、パーティショニング ロジックを簡潔で読みやすい方法でキャプチャしているため、よりエレガントであると考えられています。

以上が条件に基づいてリストを効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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