You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python列表中快速交换0和1(非numpy实现)

不使用numpy时交换Python列表中0和1的最快方法

如果你的列表只包含0和1,最快的实现方式是用列表推导式结合算术运算:

original = [0, 1, 0, 1, 1, 0]
swapped = [1 - x for x in original]

这种方法依赖底层C实现的遍历逻辑,比Python层面的循环快得多,且1 - x的计算几乎没有额外开销,是纯0/1列表场景下的最优解。

如果列表中存在0和1之外的其他元素,需要仅交换0和1、保留其余元素,同样用列表推导式实现效率最高:

original = [0, 1, 2, 0, 3, 1]
swapped = [1 if x == 0 else 0 if x == 1 else x for x in original]

你也可以用map函数配合lambda表达式实现,代码更简洁,但效率略低于列表推导式:

# 仅含0和1的场景
swapped = list(map(lambda x: 1 - x, original))

# 兼容其他元素的场景
swapped = list(map(lambda x: 1 if x ==0 else 0 if x ==1 else x, original))

实测显示,列表推导式的执行速度普遍快于手动for循环逐个修改元素——它避开了Python解释器对循环语句的反复解析,直接调用底层高效的遍历逻辑。

内容的提问来源于stack exchange,提问作者Nick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:48:11