如何去掉Django(Python)元组中的多余',
我在用Django创建一个ID列表的时候遇到一个问题。如果我选择多个ID,那没问题,但如果我只选择一个ID,列表里会多出一个多余的逗号。
testa = tuple([k['id'] for k in queryset.values('id')])
print testa
如果查询结果里正好有一个ID,它会显示
(1234,)
其他情况下就没问题了
(1234,1244)
我该怎么去掉列表里多余的逗号呢?
7 个回答
2
其实你并不需要这样做。冒号只是用来表示元组的字符串形式的。比如,你可以通过下面的方式自己创建一个字符串:
print "(%s)" % ",".join(testa)
3
要创建一个只包含一个值的元组,你需要加一个逗号,即使只有一个值。
你可以通过索引来获取你想要的输出:
print testa[0]
>>>> 1234
17
(1234,)
这是一个正确的Python表示1元组的方式。(1234)
是不对的,因为在数学中,这样的括号只是表示一个简单的整数,结果是1234
,而不是一个包含它的元组。
对于列表来说情况不同,因为方括号没有同时表示数学运算顺序的功能。所以[1234]
和[1234,]
都是有效的长度为1的列表表示方式,默认的文本表示可以没有额外的逗号。
如果你想自己设计一个元组的文本表示方式,而不需要和Python的一样,你可以这样做:
'(%s)' % ', '.join(map(repr, testa))