在list comprehension python中的每个元素后面插入逗号

时间:2017-05-02 07:50:21

标签: python csv list-comprehension comma

我有一些数据如下:

stats = {'a':1000, 'b':3000, 'c': 100}

我想在每个元素之后插入逗号,在列表解析中,请参见下面的示例:

d = ['a',',','b',',','c',',']

如何使用正常的列表理解来做到这一点:

找到以下示例代码:

[k +','对于k,v在stats.iteritems()]中,但似乎没有得到所需的结果。

感谢任何帮助 TIA!

2 个答案:

答案 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,'

仅当键长度恰好为一个字符时才会起作用。要迭代字符串中的字符,您甚至不需要将字符串转换为列表。