我试图删除列表中的列表,但是即使删除了列表,我的代码也无法删除。
y = [45]
x = [1,2,3,5,y]
del y
print(x)
打印x的输出:
[1, 2, 3, 5, [45]]
我的输出显示为[1, 2, 3, 5, [45]]
,这意味着列表y
仍然存在于列表x
中。
但是我在代码中删除了列表y
。为什么列表y
仍未删除?我的代码有问题吗?如何在Python中删除整个列表?
答案 0 :(得分:1)
看here并玩弄它。
在python中,所有variables
都是names
,它们绑定到对象。它与C
是C++
的{{1}}或variables
不同。
在您的代码中,memory locations
和y
都绑定到列表对象x[4]
上。 [45]
时,无法阻止del y
绑定到x[4]
。
答案 1 :(得分:0)
如果要删除n
的第list
个元素,则应按以下方式使用del
:
y = [45]
x = [1,2,3,5,y]
del x[4] # 4 means last element of x as indexing starts with 0
print(x) # [1,2,3,5]
print(y) # [45]
请注意,此后y
保持不变。 list
的方法.remove
也将删除首次出现的方法,请考虑以下示例:
a = [1,2,3,1,2,3,1,2,3]
a.remove(3)
print(a) # [1, 2, 1, 2, 3, 1, 2, 3]
如果remove
中没有元素,则 ValueError
将导致list
。
答案 2 :(得分:0)
删除另一个列表中存在的列表。
通过使用删除功能,我们还可以删除另一个列表中的列表。
运行以下代码:
y = [45]
x = [1,2,3,5,y]
x.remove(y)
print(x)
x.remove(y)
将从x列表中删除y列表。
输出:
[1、2、3、5]