python - 新值被复制到整列
问题描述
首先,我认为这不是变量地址复制问题。我有这个代码:
x = [1, 1, 0, 0]
b_u = [[0.2 for _ in range(3)]] * 4
for i in range(4):
# The problem is on line below. This line copying new value to the whole column.
b_u[i][0] = (2 * x[i]) / (1 + sum(x))
print(b_u)
您可以在下面的几行中看到发生了什么:
# b_u :
# Before loop : [[0.2, 0.2, 0.2], [0.2, 0.2, 0.2], [0.2, 0.2, 0.2], [0.2, 0.2, 0.2]]
# Expected : [[0.67, 0.2, 0.2], [0.67, 0.2, 0.2], [0, 0.2, 0.2], [0, 0.2, 0.2]]
# After loop : [[0.0, 0.2, 0.2], [0.0, 0.2, 0.2], [0.0, 0.2, 0.2], [0.0, 0.2, 0.2]]
我错在哪里?是错字吗?
解决方案
推荐阅读
- java - 从java程序远程执行kafka sh脚本
- r - 计算眼睛的反应潜伏期
- mysql - 如何编写条件 mysql 查询?
- shell - 密码大小(用于命令 passwd)在哪里设置?
- javascript - 我们可以在 echart 中添加自定义点吗?
- r - 如何根据数据框重新分类空间栅格
- php - Laravel:查询多对多数据透视表
- javascript - 如何使用 Javascript 而不是 jQuery 为 window.scrollTo 设置动画?
- visual-studio-code - VS Code源码,如何显示闪屏?
- xcode-ui-testing - 如何处理回收清单