[英]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.