切片并从同一行中的列表中删除

问题描述 投票:4回答:2

当我做:

abc = [1,2,3,4,5]
dd = (abc[:]).remove(4)
print(dd)
print(abc)

结果是:

没有 [1,2,3,4,5]

但如果我这样做:

abc = [1,2,3,4,5]
dd = abc[:]
dd.remove(4)
print(dd)
print(abc)

结果是:

[1, 2, 3, 5] [1, 2, 3, 4, 5]

有人可以解释为什么这两件事情有所不同?我认为它会做同样的事情。

python python-3.x list slice
2个回答
3
投票

因为你把.remove()方法的返回值放在你的dd变量中,并且这个方法的返回值总是None


abc = [1,2,3,4,5]
dd = abc[:]
rt_value = dd.remove(4)
print(rt_value)
print(dd)
print(abc)

将导致

没有 [1,2,3,5] [1,2,3,4,5]


0
投票

我们可以使用切片运算符(冒号)访问列表中的一系列项目。此外,您可以检查https://docs.python.org/2/library/copy.html以便更好地理解。

© www.soinside.com 2019 - 2024. All rights reserved.