一个bug

在写一条从sqlite同步到mysql中的程序的时候,有时会发现来自sql语法的报错,提示语句多了一个逗号,很是烦恼

查的排

第一时间想到tuple,因为这种括号带逗号的形制只会出现在有tuple的情景中,诸如argszip等的打印表现

但偏偏忘记了什么时候见过以及这倒霉的逗号什么时候会出现

资料的搜

可惜当时并没有聪明到用搜索引擎,一坨的脑子完全想不起来网络的用处。但不妨碍我事后
资料A
资料B

事后

被狠狠的不信任了…(应该是?)

小结的记

在只有一个元素的时候,str(tuple())会比str(list())结果多出末尾逗号。有且只有在元组中只有一个元素的时候会多出来这一个逗号,而且这个逗号是符合PEP8语法公约的。

例子如下

a=tuple(1)
str(a)
>>> (1, )
a=list(1)
str(a)
>>> [1]

b=(1, 2)
str(b)
>>> (1, 2)
b=[1,2]
str(b)
>>> [1,2]
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐