【发布时间】:2014-01-30 03:13:27
【问题描述】:
我目前有这个利用列表理解的递归单线
def f(n):
return 1 if n == 1 else min([2 * f(n - x) + (2 ** x) - 1 for x in range(1, n)])
如您所见,它从使用范围 (1
def f(n):
return 1 if n == 1 else min([(2 * f(n - x) + (2 ** x) - 1, x) for x in range(1, n)])
所以我可以看到最小值属于哪个 x 值,但是如果我这样做会产生以下错误:
builtins.TypeError: can only concatenate tuple (not "int") to tuple
尽管我尝试调试和制作类似的函数(非递归但它们有效),但我无法理解或看到它试图连接 int 的位置。 有没有人知道为什么会发生这种情况以及我该如何解决?
【问题讨论】:
标签: python list recursion tuples concatenation