【发布时间】:2013-08-07 19:43:37
【问题描述】:
使用递归而不是使用for i in range(11): 的目的是因为它有利于从顶部开始尝试解决特定的数学问题。该函数将被更改,使其仅返回符合特定条件的[n]。
print(numbers)=[[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]为什么会有多余的括号?
print(numbers[7])=IndexError: list index out of range 这跟多余的括号有关系吗?
# A function that is supposed to help sorting numbers in a list
def sorting_numbers(n):
if n > 1:
return [n] + sorting_numbers(n-1)
else:
return [1]
numbers = []
n = 10
numbers = (sorting_numbers(n))
print(numbers)
print(numbers)=[[10, 9, 8, 7, 6, 5, 4, 3, 2, 1]]为什么会有多余的括号?
print(numbers[7])=IndexError: list index out of range 这跟多余的括号有关系吗?
【问题讨论】:
-
“因此它只返回符合特定条件的 [n]”对此使用列表推导。对这个问题使用递归确实没有任何优势。
-
如果您还有其他问题,请将它们作为单独的问题发布。您每次都不断删除/取消删除/编辑和更改问题的范围,这不是 SO 的工作方式。关于最后一个问题:请参阅answer 以了解如何增加递归限制 - 但 真的 这不是解决方案,解决方案是避免使用递归
-
您阅读答案了吗?正确使用
sorting_numbers的方法是:numbers = storing_numbers(10),不要使用append! -
好的,我下次不会更改问题。对不起。我将发布新问题。感谢您的时间。这对我帮助很大。我确实阅读并尝试了它。我错过了删除附加。我的错。
标签: python list recursion python-3.x