我试过了:
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()嵌入[:]? 谢谢!
答案 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
。