在Python中索引列表时初始化变量

问题描述 投票:0回答:1

我正在尝试调试一些旧代码并需要理解特定的代码行,但它不断给出错误,所以我无法确切地看到发生了什么。我在这里简化一下。

我有两个列表:A 和 B

A = [0,1,2,3]
B = [5,6,7,8]

我的问题是:下面的两段代码有什么区别吗?

A[B==0] = 11

A[0] = 11

在索引列表 A 的同时将列表 B 初始化为 0 与仅使用 0 索引列表 A 有什么不同吗?

python list
1个回答
0
投票

回答你的问题:

A[B==0]
A[0]
在这种情况下是等价的,因为B==0
是假的。

但是,您并不是将列表 B 初始化为 0,而是对其进行比较。

A[B==0]

 不会改变 
B
 的值。要在 
B
 的索引器中分配给 
A
,您需要使用海象运算符 
A[B:=0]
(也相当于 
A[0]
)。

您的问题暗示或引起误解,因为它看起来断言

B==0

 是初始化/赋值,因此我可能建议检查问题的措辞以确保清晰。

© www.soinside.com 2019 - 2024. All rights reserved.