对于作业,我想删除列表中的所有不需要的项目。这是一个应该从列表中删除所有1的代码示例;但是,当我运行它时,它返回None。这是为什么?
v=[1,2,1,3,1,4,5,55,1]
for i in v:
if i==1:
result=v.remove(1)
else:
continue
print (result)
答案 0 :(得分:0)
list.remove()
改变列表就地。 method itself returns None
。the docs。打印v
以查看结果。
来自1:
您可能已经注意到,只修改列表的
insert
,remove
或sort
等方法没有打印返回值 - 它们会返回默认值None
。 here这是Python中所有可变数据结构的设计原则。
答案 1 :(得分:0)
您可以过滤列表:
Python 2:
v = filter(lambda x: x != 1, v)
Python 3:
v = filter((1).__ne__, v)
问题中的代码段基本上等同于:
while 1 in v:
v.remove(1)