在 Python 中有条件地替换列表值
使用列表时,通常需要根据某些条件修改其值。一项常见任务是,如果条件评估为 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>
此方法需要对整个列表进行两次迭代,这对于大型列表来说成本高昂。
时序比较
对两种方法进行基准测试显示列表理解明显更快,特别是对于大型列表。
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中文网其他相关文章!