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

如何对不同长度列表执行类按位异或?Python实现短列表覆盖长零数组

如何用Pythonic的方式处理不同长度列表的类按位异或覆盖操作?

嘿,这题太适合用Python的原生特性来解决了,完全不用写繁琐的循环,代码简洁又优雅!

首先针对你的具体需求:初始化a = [0, 0, 0, 0, 0],把b = [1,2,3]的内容覆盖到a的开头,得到[1,2,3,0,0],最符合Python风格的写法就是切片赋值:

a = [0, 0, 0, 0, 0]
b = [1, 2, 3]
a[:len(b)] = b

执行完这行代码,a就会变成[1, 2, 3, 0, 0],完美匹配你的预期!原理很简单:a[:len(b)]选中了a的前len(b)个元素(也就是前3个0),直接把b的元素赋值给这个切片区域,Python会自动帮你完成元素的替换,完全不需要手动循环枚举。

如果你的场景允许生成一个新列表而不是修改原a,还可以用列表拼接的方式,写法同样直观:

a = b + [0] * (len(a) - len(b))

这种方式直接把b和对应数量的0拼接起来,一步得到目标列表。

回到你开头的问题:“如何对不同长度的列表执行类按位异或操作”——其实你这里的需求本质是用b的元素覆盖a对应位置的0(因为0和任何数按位异或的结果都是那个数),而上面的切片赋值刚好完美匹配这个“类异或”的效果,它直接把a的前n个位置替换成b的元素,和0 | x = x的逻辑完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:56:46