Python map函数中元组拼接的括号语法及报错原因求解
问题原因解答
这是Python元组的基础语法规则导致的:
- 括号
()默认是优先级运算符,只有括号内存在逗号时,Python才会将其识别为元组类型:- 写
(int(tup[2]))时,外层括号仅被当做调整运算优先级的符号,最终返回的是int类型的数值,不是元组 - 写
(int(tup[2]),)时,括号内的逗号明确告知Python这是一个仅包含1个元素的元组,返回类型为tuple
- 写
- 你的代码中
tup[:2]是对原元组切片得到的二元组,Python规定仅支持元组和元组之间用+拼接,拿元组和int类型相加自然会触发你看到的TypeError报错。
你可以用下面的简单代码验证这个规则:
# 无逗号的括号返回int val1 = (5) print(type(val1)) # 输出:<class 'int'> # 加逗号的括号返回元组 val2 = (5,) print(type(val2)) # 输出:<class 'tuple'>
内容的提问来源于stack exchange,提问作者redpy
相关产品推荐
相关产品推荐

