gpt4 book ai didi

python - 为什么这个 python 代码不替换已删除的列表元素?

转载 作者:行者123 更新时间:2023-11-28 21:27:52 25 4
gpt4 key购买 nike

这是我的代码:

for each in range(0, number_of_trials):
temp_list = source_list
for i in range(10):
x = random.randrange(0, len(temp_list))
board[i] = temp_list[x]
del temp_list[x]

正如预期的那样,此代码正在从 temp_list 中删除每个元素。但是 temp_list 并没有在每次初始 for 循环运行时都被重置,而是将其设置回 source_list。因此,每次从 temp_list 中删除都是永久性的,持续 for 循环的每次后续迭代。我怎样才能避免这种情况并让 temp_list 每次都“重置”回其初始状态?

最佳答案

temp_list = source_list 语句不会创建新列表。它为现有列表赋予新名称 temp_list。使用什么名称访问列表并不重要——通过一个名称所做的任何更改都将通过另一个名称可见。

相反,您需要像这样复制列表:

temp_list = source_list[:]

这将创建一个新列表,其内容与 source_list 相同。现在您可以在不影响原始列表的情况下更改新列表。

关于python - 为什么这个 python 代码不替换已删除的列表元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9629197/

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