繁体   English   中英

Python 中的递归返回一个空列表

[英]Recursion in Python returning an empty list

第一次发帖。 我需要过滤一个可以包含更多元组和列表的元组。 然后我需要获得最大值。 有谁知道为什么我的 int_storage 列表是空的?

def max_val(t): int_storage = [] tuple_storage = []

if type(t) == int:
    int_storage.append(t)
    return int_storage

for i in t:
    if type(t) == int:
        int_storage.append(i)

    if type(i) != int:
        for tup in i:
            tuple_storage.append(tup)
        return max_val(tuple_storage)
return max(int_storage)

测试 = ((5, (1,2), [[1],[2]]))
打印(max_val(测试))

首先,这应该是 i 而不是 t,我相信这只是一个小错误。

for i in t:
   if type(t) == int: #the t on this line

其次,您是否意识到您的 int_storage 和 tuple_storage 只是一个局部变量?

当您第二次输入 max_val() 时, int_storage 和 tuple_storage 将是全新的变量,并且其值为 [],正如您定义的那样。 我建议您对范围进行一些研究以获取更多信息。

同时使 int_storage ,tuple_storage 全局化将解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM