条件に基づいてリストを分割する
特定の条件に基づいてリストを 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 つの別々の反復の必要性が回避され、パフォーマンスが向上します。リストの走査回数が 2 回から 1 回に減ります。また、パーティショニング ロジックを簡潔で読みやすい方法でキャプチャしているため、よりエレガントであると考えられています。
以上が条件に基づいてリストを効率的に分割するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。