【发布时间】:2016-06-23 04:02:11
【问题描述】:
我在使用 Python 返回递归函数的结果时遇到问题。
我的函数需要返回最大范围为list_upper_range 的整数之间可能比较的对列表。
重要的是两个整数每对只配对一次。
在我打印结果并将结果返回到调用函数的位置之前,该函数的行为与预期相同。
def generate_comparisons_list(list_upper_range, iter_start, list_of_cases):
if iter_start == list_upper_range:
#print(list_of_cases) here verified condition was met
return list_of_cases
for i in range(iter_start+1, list_upper_range):
this_case = [iter_start, i]
list_of_cases.append(this_case)
iter_start += 1
generate_comparisons_list(list_upper_range, iter_start, list_of_cases)
list_of_cases_a_and_b = generate_comparisons_list(list_upper_range=6, iter_start=1, list_of_cases=[])
print(list_of_cases_a_and_b) #returns None
结果应该返回为
[[1, 2], [1, 3], [1, 4], [1, 5], [2, 3], [2, 4], [2, 5], [3, 4], [3, 5], [4, 5]]
我是否误解了 Python 在递归函数中处理列表的方式?
【问题讨论】:
标签: python python-3.x recursion