gpt4 book ai didi

python - 附加一个空列表但被转换为 NoneType

转载 作者:太空宇宙 更新时间:2023-11-04 07:03:22 25 4
gpt4 key购买 nike

在下面的代码中:

all_subsets = []
subsets = [[], [2]]
left_most = 1
for subset in subsets:
print subset
all_subsets.append(subset)
all_subsets.append(subset.append(left_most))
print all_subsets

我想返回值应该是[[], [1], [2], [2, 1]],但实际上我得到的是[[1]的返回值,无,[2, 1],无]。即,[] 已转换为 None

我想是循环修改subset两次,指向同一个物理地址的问题。但是,即使我在修改列表之前制作本地副本也无法解决问题,例如:

all_subsets = []
subsets = [[], [2]]
left_most = 1
for subset in subsets:
print subset
subset_orig = list(subset)
subset_plus = list(subset).append(left_most)
all_subsets.append(subset_orig)
all_subsets.append(subset_plus)
print all_subsets

有什么想法吗?谢谢!

最佳答案

问题是 append()就地修改列表,并返回 None

这是修复代码的一种方法:

all_subsets = []
subsets = [[], [2]]
left_most = 1
for subset in subsets:
print subset
all_subsets.append(subset)
all_subsets.append(subset + [left_most])
print all_subsets

如您所料,这会生成 [[], [1], [2], [2, 1]]

关于python - 附加一个空列表但被转换为 NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8991125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com