【python】关于str(tuple())和str(list())以及str(tuple())在只有一个元素时末尾会多出逗号的小记
如题:在列表/元祖中只有一个元素时,str(tuple())会比str(list())在末尾多一个逗号,由此会引发各种边界问题
·
一个bug
在写一条从sqlite同步到mysql中的程序的时候,有时会发现来自sql语法的报错,提示语句多了一个逗号,很是烦恼
查的排
第一时间想到tuple,因为这种括号带逗号的形制只会出现在有tuple的情景中,诸如args
、zip
等的打印表现
但偏偏忘记了什么时候见过以及这倒霉的逗号什么时候会出现
资料的搜
可惜当时并没有聪明到用搜索引擎,一坨的脑子完全想不起来网络的用处。但不妨碍我事后
资料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]
更多推荐
已为社区贡献1条内容
所有评论(0)