如何将字符串列表制作成逗号分隔的字符串?

2024-03-28 09:36:29 发布

您现在位置:Python中文网/ 问答频道 /正文

将序列中的字符串连接起来,以便在每两个连续对之间添加一个逗号,您的首选方法是什么。也就是说,如何将['a', 'b', 'c']映射到'a,b,c'?(病例['s'][]应分别映射到's'''。)

我通常会使用类似''.join(map(lambda x: x+',',l))[:-1]的东西,但也会感到有些不满意。


Tags: 方法lambda字符串map序列逗号join病例
3条回答

为什么会有map/lambda魔力?这不管用吗?

>>> foo = ['a', 'b', 'c']
>>> print(','.join(foo))
a,b,c
>>> print(','.join([]))

>>> print(','.join(['a']))
a

如果列表中有数字,可以使用列表理解:

>>> ','.join([str(x) for x in foo])

或生成器表达式:

>>> ','.join(str(x) for x in foo)
my_list = ['a', 'b', 'c', 'd']
my_string = ','.join(my_list)

如果列表中包含数字,这将不起作用。


如果列表包含非字符串类型(如整数、浮点数、bools、None),请执行以下操作:

my_string = ','.join(map(str, my_list)) 

",".join(l)不适用于所有情况。我建议在StringIO中使用csv模块

import StringIO
import csv

l = ['list','of','["""crazy"quotes"and\'',123,'other things']

line = StringIO.StringIO()
writer = csv.writer(line)
writer.writerow(l)
csvcontent = line.getvalue()
# 'list,of,"[""""""crazy""quotes""and\'",123,other things\r\n'

相关问题 更多 >