You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Python中只能拼接元组与元组的TypeError错误

解决TypeError: can only concatenate tuple (not "list") to tuple错误

你遇到的错误原因很明确:verified函数里尝试把元组和列表拼接,但Python不允许不同序列类型直接做+操作。具体来说,你传入的d_signer是列表,却要和已转为元组的k_signer、tuple(sha256.encode())这些元组拼接,因此触发类型错误。

有两种简单的解决方式:

方式一:调用函数时转换d_signer为元组

直接复用你已经写好的convert函数,在调用verified时把data['d_signer']转成元组:

is_verified = verified(convert(data['k_signer']), data['d_pk'], convert(data['d_signer']), data['sig'], data['addr'], data['seed'], data['data'])

方式二:在verified函数内部转换d_signer

如果不想修改调用代码,也可以在函数内部把d_signer转成元组后再拼接:

def verified(k_signer, sha256, d_signer, addr_from, seed, data, signature):
    hash = (
                           k_signer +
                           tuple(sha256.encode()) +
                           tuple(d_signer) +  # 将list转为tuple后再拼接
                           tuple() +
                           tuple() +
                           tuple()
                         )
    return hash

额外提醒

检查下verified函数的参数顺序是否和你传入的参数匹配:
函数定义的参数顺序是k_signer, sha256, d_signer, addr_from, seed, data, signature,但你调用时传入的是convert(data['k_signer']), data['d_pk'], data['d_signer'], data['sig'], data['addr'], data['seed'], data['data']——这里sha256参数对应的是data['d_pk'],addr_from对应的是data['sig'],这可能和你的预期逻辑不符,建议确认参数对应关系,避免后续出现逻辑错误。

内容的提问来源于stack exchange,提问作者l33t

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 00:40:41