为什么列表[:]不能列入[:]。remove()?

时间:2017-09-08 17:35:16

标签: python list

我试过了:

a = ['a', 'b', 'c', 'd']
a2 = a[:]
a2.remove ('b')
print(a2)

输出

['a', 'c', 'd'] 

但是,如果我删除第二行,并直接执行:

a = ['a', 'b', 'c', 'd']
a2 = a[:].remove ('b')
print(a2)

输出

None

这是为什么?为什么我不能用.remove()嵌入[:]? 谢谢!

2 个答案:

答案 0 :(得分:6)

a[:].remove ('b')b移除a[:]并返回None,它不会返回删除b的列表,这就是为什么必须调用它在一个单独的行。

答案 1 :(得分:1)

为了更好地理解这一点,您应该看看以下内容:

a = ['a', 'b', 'c', 'd']
a2 = a.remove('b')
print(a2)

来自remove()的文档:

  

从列表中删除值为x的第一项。如果是,这是一个错误       没有这样的项目。

因此,当您删除元素时,由于remove()未返回列表,您选择所有元素(a[:]),并将变量a2设置为返回通过删除元素来解释输出值None