方法list.pop返回None而不是预期的值

时间:2014-07-15 20:54:35

标签: python python-3.x

我只是尝试了这个方法.pop(),它在文档中说它应该“删除列表中给定位置的项目,并将其返回。”

所以我尝试了以下代码:

def lao(li, i):
    guess=input('Have a guess: ')
    if guess == li[i]:
        li.pop(i)

ho=list('abcde')

我想看看老挝(ho,0)是否按照我的想法返回并删除了'a',这就是它的原因:

>>> print(lao(ho, 0))
Have a guess: a
None

>>> ho
['b', 'c', 'd', 'e']

很明显.pop()方法已被执行,因为'a'被删除但该方法没有返回'a',而是返回None。 我不明白为什么?

2 个答案:

答案 0 :(得分:2)

li.pop(i)更改为return li.pop(i)。 Python函数默认返回None(当没有return语句存在/到达时)。要从函数中返回内容,您必须使用return关键字。请参阅demo on Ideone

答案 1 :(得分:0)

也许试试return li.pop(i)

该方法可能正常工作,只是您没有返回实际值