python - 更改列表中的一个输入会更改其所有输入
问题描述
我正在尝试生成一个 3 维列表(proposedFillings
如下),其中i
第一个输入是以不同方式排列的列表中的i
数字列表。shiftedContents
因此,我从proposedFillings = [[[]]]
.
在循环的连续迭代中for
,我想proposedFillings[i+1]
基于proposedFillings[i]
. 不幸的是,每当我向proposedFillings
列表中添加一个新元素时,所有先前的元素都会更改为新添加的元素,我不知道为什么。
shiftedContents = [1,2,3,4,5]
proposedFillings = [[[]]]
for i in [0..len(shiftedContents) - 1]:
proposedFillings.append([])
for j in [0..len(proposedFillings[i]) - 1]:
for k in [0..len(proposedFillings[i][j]) - 1]:
if k == 0:
proposedFillings[i+1].append(proposedFillings[i][j])
proposedFillings[i+1][len(proposedFillings[i+1]) - 1][k].append(shiftedContents[i])
elif len(proposedFillings[i][j][k-1]) > len(proposedFillings[i][j][k]):
proposedFillings[i+1].append(proposedFillings[i][j])
proposedFillings[i+1][len(proposedFillings[i+1]) - 1][k].append(shiftedContents[i])
proposedFillings[i+1].append(proposedFillings[i][j])
proposedFillings[i+1][len(proposedFillings[i+1]) - 1].append([shiftedContents[i]])
for i in [0..len(proposedFillings) - 1]:
print(proposedFillings[i])
例如,对于shiftedContents = [1,2]
: 预期输出:
[[]]
[[1]]
[[1,2]],[[1],[2]]
实际输出:
[[1,2],[2]]
[[1,2],[2]]
[[1,2],[2]],[[1,2],[2]]
解决方案
推荐阅读
- google-cloud-platform - 确定 GCP 虚拟机中的带宽
- r - R闪亮的未来:计划(多进程)/计划(多核)+杀死长时间运行的进程
- python - 从 sdist 安装时如何制作 pip/setup.py 构建扩展 (build_ext)?
- javascript - 可以将条件运算符“?:”视为 JavaScript 中 if-else 语句的替代方案吗?
- c# - 字段初始值设定项在 IL 的构造函数中,但在 Visual Studio 中调试时没有
- ios - store url in userdefaults
- rdf - ObjectProperty 可以有 DatatypeProperty 吗?
- c++ - 在 C++ 代码中查找未使用的函数以测试覆盖率
- python - OpenSSL:错误:1409442E:SSL 例程:ssl3_read_bytes:tlsv1 警报协议版本
- highcharts - 轴间隔错误