0

我现在用 python 编码了一段时间,从昨天开始,我偶然发现了一个似乎完全随机的“附加”函数问题,我找不到逻辑原因!

我想将布尔值添加到现有列表中。我的一段代码如下所示:

comp_bounds = []
for item_i,item_j in zip(x_bound_min,x_bound_max):
     if item_i == item_j: comp_bounds.append(1)
     else: comp_bounds.append(0) 

问题是,代码不会为每个循环只添加一个值到列表中,而是更多!然而,这随机出现。有时一切都很好,有时它会添加两个或三个布尔值。我尝试通过硬输入附加功能在控制台中对其进行测试,并且发生了同样的情况。这是我的控制台命令的一部分:

del comp_bounds[:]
None
comp_bounds.append(1)
comp_bounds
[1]
comp_bounds.append(0)
None
comp_bounds.append(0)
None
comp_bounds
[1, 0, 0, 0, 0, 0, 0]

如您所见,我首先删除了所有列表值,将 1 添加到列表中,一切都很好。比我加了两次 0 就可以了!为什么 append 命令加了 6 个 0?我在开始时尝试使用“True”和“False”,但出现了同样的情况。这就是为什么我切换到“0/1”希望问题能得到解决的原因。我使用 Visual Studio 作为 IDE。我知道“追加”和“扩展”之间的区别。我的代码可以很容易地切换到扩展并且可能工作正常,但我想了解这个问题以避免在未来犯同样的错误!

先感谢您!

4

0 回答 0