我正在尝试调试一些旧代码并需要理解特定的代码行,但它不断给出错误,所以我无法确切地看到发生了什么。我在这里简化一下。
我有两个列表:A 和 B
A = [0,1,2,3]
B = [5,6,7,8]
我的问题是:下面的两段代码有什么区别吗?
A[B==0] = 11
A[0] = 11
在索引列表 A 的同时将列表 B 初始化为 0 与仅使用 0 索引列表 A 有什么不同吗?
回答你的问题:
A[B==0]
和A[0]
在这种情况下是等价的,因为B==0
是假的。但是,您并不是将列表 B 初始化为 0,而是对其进行比较。
A[B==0]
不会改变
B
的值。要在
B
的索引器中分配给
A
,您需要使用海象运算符
A[B:=0]
(也相当于
A[0]
)。您的问题暗示或引起误解,因为它看起来断言
B==0
是初始化/赋值,因此我可能建议检查问题的措辞以确保清晰。