我有一些数据如下:
stats = {'a':1000, 'b':3000, 'c': 100}
我想在每个元素之后插入逗号,在列表解析中,请参见下面的示例:
d = ['a',',','b',',','c',',']
如何使用正常的列表理解来做到这一点:
找到以下示例代码:
[k +','对于k,v在stats.iteritems()]中,但似乎没有得到所需的结果。
感谢任何帮助 TIA!
答案 0 :(得分:3)
可以通过平移字典键引起的对来完成:
d = [item for key in stats for item in (key, ',')]
另一种选择是压缩键和逗号并将它们链接起来:
d = list(chain(*zip(stats, repeat(','))))
答案 1 :(得分:0)
如果您的目标是将元素连接到字符串,则可以使用str.join
:
element.bind
如果您真的想要一个尾随逗号,可以添加它:
link
请注意,Python dicts是无序的:您无法确定密钥的输出顺序与输入顺序相同。为此,您需要一个列表或OrderedDict
。
>>> stats = {'a':1000, 'b':3000, 'c': 100}
>>> ','.join(stats)
'a,c,b'
如果由于某种原因,你真的想要一个字符列表:
>>> ','.join(stats) + ','
'a,c,b,'
仅当键长度恰好为一个字符时才会起作用。要迭代字符串中的字符,您甚至不需要将字符串转换为列表。