我有一个包含从数据库查询生成的元组的列表,它看起来像这样。
[(item1, value1), (item2, value2), (item3, value3),...]
元组将是混合长度的,当我打印输出时,它将是这样的。
item1=value1, item2=value2, item3=value3,...
我已经寻找了一段时间,试图找到一个解决方案,但我找到的.join()
解决方案都不适用于这种情况。
您想要的是:
>>> a = [('val', 1), ('val2', 2), ('val3', 3)]
>>> ', '.join('{}={}'.format(*el) for el in a)
'val=1, val2=2, val3=3'
这也不在乎元组元素是什么类型。。。您将自动获得它们的str
表示。
您也可以使用itertools
和
from itertools import starmap
', '.join(starmap('{}={}'.format, a))
如果每个元组只是一个(item, value)
对,那么这应该有效:
l = [(item1, value1), (item2, value2), (item3, value3), ...]
', '.join('='.join(t) for t in l)
'item1=value1, item2=value2, item3=value3, ...'
试试这个:
lst = [('item1', 'value1'), ('item2', 'value2'), ('item3', 'value3')]
print ', '.join(str(x) + '=' + str(y) for x, y in lst)
我显式地转换为字符串项和值,如果其中一个(或两个)已经是字符串,则可以删除相应的str()
转换:
print ', '.join(x + '=' + y for x, y in lst)
一个可能的解决方案是,这无疑是最短的代码
>>> a = [('val', 1), ('val2', 2), ('val3', 3)]
>>>', '.join('%s=%s' % v for v in a)
'val=1, val2=2, val3=3'
适用于python 2.7以及
如果你想要这样的东西,我会用字典。
dict = {1:2,3:4}
print dict
然后,你可以这样循环:
dict = {1:2,3:3}
print dict
for i in dict:
print i, "=", dict[i]
希望它能有所帮助!