python - 访问列表元素的while循环问题
问题描述
我想附加 to 的每个元素,
[1,2]
因此[[1], [2], [3]]
,我想要的最终数组是[[1,1], [1,2], [2,1], [2,2], [3,1], [3,2]]
但是我的代码有一个错误我还不能识别,下面python代码的结果是
[[1, 1, 2], [1, 1, 2], [2, 1, 2], [2, 1, 2], [3, 1, 2], [3, 1, 2]]
蟒蛇代码:
tor=[]
arr=[1,2]
arz=[[1], [2], [3]]
each=0
while each<len(arz):
eleman=arz[each]
index=0
while index < len(arr):
k=arr[index]
eleman=arz[each]
eleman.append(k)
tor.append(eleman)
index = index+1
each=each+1
解决方案
因为eleman=arz[each].copy()
列表是可变的,所以每次更改原始列表中的元素时,它都会反映在结果数组中
推荐阅读
- antlr4 - 如何允许特殊字符,例如 * 或 ? 在 Antlr 中的令牌中
- python-3.x - 访问同一类python中的局部变量
- regex - 在文本文件中查找正则表达式模式并将每个匹配项输出到新文本文件
- php - php 使用 concat_ws 在 mysql 结果中添加空格
- python-3.x - 为什么 Python `f-string` + inline for 循环在作为参数传递时会创建一个生成器?
- tensorflow - Tensorflow 2x - ModuleNotFoundError:没有名为“tensorflow.contrib”的模块
- ajax - 无法使用ajax从请求中获取数据
- r - R ggplot2条形图
- dll - Inno Setup 6 不能使用带有字符串参数的 DLL 函数,而它在 Inno Setup 5 中工作
- html - 移动版中无法删除 Carousel Bootstrap 和社交媒体图标下方的空白