从列表中删除项会导致列表变为非类型

时间:2014-11-05 20:33:09

标签: python list nonetype

我想有一个我忽略的简单解决方案。比复杂的更好,对吗?

简单地说:

var = ['p', 's', 'c', 'x', 'd'].remove('d')

导致var属于None类型。这是怎么回事?

2 个答案:

答案 0 :(得分:17)

remove不会返回任何内容。它就地修改现有列表。不需要任何分配。

替换

var = ['p', 's', 'c', 'x', 'd'].remove('d') 

var = ['p', 's', 'c', 'x', 'd']
var.remove('d') 

现在var的值为['p', 's', 'c', 'x']

答案 1 :(得分:1)

remove就地改变列表,并返回None。你必须把它放在一个变量中,然后改变它:

>>> var = ['p', 's', 'c', 'x', 'd']
>>> var.remove('d')   # Notice how it doesn't return anything.
>>> var
['p', 's', 'c', 'x']