Python中tuple()意外拆分字符串的问题求助
解决方法
直接把列表推导式里的tuple(x)替换成(x,)就行——单元素元组必须靠逗号来定义(括号是可选的语法糖,加上会更清晰)。
修改后的代码示例:
BPID_list = ['900383', '7716922', '99140154'] print(BPID_list) BPID_list = [(x,) for x in BPID_list] print(BPID_list)
执行后输出:
['900383', '7716922', '99140154']
[('900383',), ('7716922',), ('99140154',)]
原因说明
tuple(x)的逻辑是拆解传入的可迭代对象:字符串本身就是由字符组成的可迭代序列,所以它会把每个字符拆出来当成元组的成员,最终生成字符元组。(x,)是直接创建仅包含原字符串的元组,逗号是单元素元组的核心标识——如果只写(x),Python会把它当成普通的表达式分组,而非元组。
内容的提问来源于stack exchange,提问作者mpg995
相关产品推荐
相关产品推荐

