ホームページ >バックエンド開発 >Python チュートリアル >Python でリストの値を条件付きで置き換える方法は?
Python でリストの値を条件付きで置換する
リストを操作する場合、多くの場合、特定の条件に基づいて値を変更する必要があります。一般的なタスクの 1 つは、条件が True と評価された場合に値を None に置き換えることです。
リスト内包表記を使用した解決策
これを行う最も効率的な方法は、リスト内包表記を使用することです。 .
<code class="python">new_items = [x if x % 2 else None for x in items]</code>
ここで、 items は元のリストであり、 x % 2 は item が偶数であるかどうかをチェックします。 true の場合、項目は None に置き換えられます。それ以外の場合は、元の値が保持されます。
インプレース変更
元のリストをインプレースで変更することは可能ですが、効率上の理由からお勧めできません。
<code class="python">for index, item in enumerate(items): if not (item % 2): items[index] = None</code>
このアプローチではリスト全体を 2 回繰り返す必要があり、リストが大きい場合はコストがかかる可能性があります。
タイミングの比較
2 つのアプローチのベンチマーク特に大きなリストの場合、リストの理解が大幅に高速化されていることを示しています。
Python 3.6.3:
(In-place) 1.06 µs ± 33.7 ns per loop (List comprehension) 891 ns ± 13.6 ns per loop
Python 2.7.6:
(In-place) 1.27 µs per loop (List comprehension) 1.14 µs per loop
以上がPython でリストの値を条件付きで置き換える方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。