I have one problem in building a list of id using django. if i choose more than 1 id it ok but if i choose only one it will produce extra ',' in list.
testa = tuple([k['id'] for k in queryset.values('id')])
print testa
if in the queryset have exactly 1 id, it will display
(1234,)
other than that it ok
(1234,1244)
How can i remove extra ', in list'
(1234,)
is the correct Python representation of a 1-tuple. (1234)
would be wrong as that is taken as a simple integer in mathematical parentheses, evaluating to 1234
, not a tuple containing it.
This is different for lists because the square brackets don't have this double purpose of also meaning mathemtical order-of-operations, so whilst [1234]
and [1234,]
are both valid representations of a length-1-list, the default textual representation can be without the extra comma.
If you are devising your own textual representation of a tuple that does not need to be the same as Python's, you could do eg.:
'(%s)' % ', '.join(map(repr, testa))
To write a tuple containing a single value you have to include a comma, even though there is only one value.
You can index the tuple to get the desired output:
print testa[0]
>>>> 1234
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With