gpt4 book ai didi

python - 如何逐步消除python列表中的项目?

转载 作者:行者123 更新时间:2023-12-05 09:33:26 26 4
gpt4 key购买 nike

我正在使用“for 循环”逐步消除项目并生成包含不同组合的新列表(feature_combination)。

feature_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
feature_combination = []
for i in range(7):
feature_list.pop()
feature_combination.append(feature_list)
feature_combination

理想的输出应该是:

[['A', 'B', 'C', 'D', 'E', 'F'],['A', 'B', 'C', 'D', 'E'],['A', 'B', 'C', 'D'],['A', 'B', 'C'],['A', 'B'],['A'], []]

但是当前的输出是:[[]、[]、[]、[]、[]、[]、[]]

当我一步步打印进度时:

feature_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G']
feature_combination = []
for i in range(7):
feature_list.pop()
print(feature_list)

我可以得到以下结果:

['A', 'B', 'C', 'D', 'E', 'F']
['A', 'B', 'C', 'D', 'E']
['A', 'B', 'C', 'D']
['A', 'B', 'C']
['A', 'B']
['A']
[]

那么,为什么我不能将这些结果附加到空列表中?有什么问题?

最佳答案

这是因为当你调用feature_combination.append(feature_list) ,您正在向 feature_list 附加一个引用 , 不是 feature_list 的实际值.自 feature_list在 for 循环结束时为空,所有对它的引用也为空。

您可以通过更改 feature_combination.append(feature_list) 来修复它至 feature_combination.append(feature_list.copy()) , 它会制作一份列表的副本来存储。

关于python - 如何逐步消除python列表中的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67260250/

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