gpt4 book ai didi

Python 列表删除项目,即使没有明确告知

转载 作者:行者123 更新时间:2023-11-30 22:40:07 24 4
gpt4 key购买 nike

因此,我在从列表中删除元素时遇到了一个非常不寻常的问题,我以更小且更易于理解的格式重新创建了该问题。基本上,从列表中删除一个项目将从您之前设置为等于主循环之外的原始列表的不同列表中删除相同的项目。

a = [1,2,3,4]
b = a

while True:
print("a:", a)
print("b:", b)
c = int(input("delete"))
del(a[c])
print("a:", a)
print("b:", b)
break

这将返回:

a: [1, 2, 3, 4]
b: [1, 2, 3, 4]
delete2 #the "2" is my input
a: [1, 2, 4]
b: [1, 2, 4]
>>>

我研究并看到了一些关于浅拷贝/深拷贝的事情,但我对此不太确定,如果有人能提供更多线索那就太好了

最佳答案

这是因为 ab 是同一列表的名称(或更正式地说,是对同一对象的引用)。

要为新列表创建名称,请复制它:

b = list(a)
# or
b = a[:]

这将创建一个包含完全相同成员的新列表,称为浅复制。

深层复制是指递归复制整个结构,但这里似乎不需要它。

关于Python 列表删除项目,即使没有明确告知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42939294/

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