【问题标题】:updating python list on recurison call returns None [duplicate]在递归调用上更新python列表返回无[重复]
【发布时间】:2015-01-06 20:14:50
【问题描述】:
def get_name():
    import random
    lst = ["aa", "bbb", "ccc", "dddd", "eee", "stop"]
    return random.choice(lst)

def poi(name, lst):
    res = get_name()
    lst.append(res)
    if res !="stop":
        poi(name, lst)
    else:
        print lst
        return lst


if __name__ == '__main__':
    print poi("xx", [])

poi() 方法在传递的列表中添加项目,并且应该返回列表,直到“停止”在列表中。如果“停止”在列表中,则返回列表

print lst 打印 ['bbb', 'dddd', 'bbb', 'stop'] #1

但是

`print poi("xx", [])` prints `None`  #2

为什么#2 打印的是None 而不是更新的列表?

【问题讨论】:

标签: python


【解决方案1】:

poi(name, lst)

应该是

return poi(name, lst)

如果没有return 语句,函数会隐式返回None

【讨论】:

    猜你喜欢
    • 2011-02-05
    • 2021-08-21
    • 2018-01-16
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多