我只是尝试了这个方法.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。 我不明白为什么?
答案 0 :(得分:2)
将li.pop(i)
更改为return li.pop(i)
。 Python函数默认返回None
(当没有return
语句存在/到达时)。要从函数中返回内容,您必须使用return
关键字。请参阅demo on Ideone。
答案 1 :(得分:0)
也许试试return li.pop(i)
?
该方法可能正常工作,只是您没有返回实际值