TypeError:只能将元组(不是“list”)连接到元组

时间:2015-03-30 00:45:00

标签: python list tuples concatenation

我正在尝试运行代码optimize.py(scipy pack的一部分),它给了我这个错误:

TypeError:只能将元组(不是“列表”)连接到元组

产生错误的代码部分粘贴在下面 -

def wrap_function(function, args):
    ncalls = [0]
    if function is None:
        return ncalls, None

    def function_wrapper(*wrapper_args):
        ncalls[0] += 1
        return function(*(wrapper_args + args))

    return ncalls, function_wrapper

你能否指出他们试图将元组连接到列表的位置,以及如何解决它?

如果有必要,我会提供更多代码 - 我几乎不知道在这里发布问题,所以我只粘贴了一小部分,其中发生了错误。

此代码用于运行命令'keepransit'以查找过境系外行星。

2 个答案:

答案 0 :(得分:4)

您很可能将列表作为args传递并尝试连接到wrapper_args这是一个元组。

所以将args转换为元组或简单地传递一个args元组。

 wrapper_args + tuple(args)

*wrapper_args创建了传入参数的元组,因此显而易见tuple() + list()无法正常工作

答案 1 :(得分:1)

我认为问题在于:

wrapper_args + args

我假设wrapper_args是一个元组,args是一个列表。例如:

wrapper_args = (1,2,3)
arg = [1,2,3]

wrapper_args + arg # TypeError: can only concatenate list (not "tuple") to list

解决方案:

wrapper_args + tuple(arg)