2024-04-23 14:34:57 发布
网友
您希望采用什么方式将序列中的字符串连接起来,以便在每两个连续对之间添加一个逗号。也就是说,例如,如何将['a', 'b', 'c']映射到'a,b,c'?(案例['s']和[]应分别映射到's'和''。)
['a', 'b', 'c']
'a,b,c'
['s']
[]
's'
''
我通常使用类似''.join(map(lambda x: x+',',l))[:-1]的东西,但也感到有些不满意
''.join(map(lambda x: x+',',l))[:-1]
",".join(l)不适用于所有情况。我建议将csv模块与StringIO一起使用
",".join(l)
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'
my_list = ['a', 'b', 'c', 'd'] my_string = ','.join(my_list)
'a,b,c,d'
如果列表包含整数,则此操作无效
如果列表包含非字符串类型(如整数、浮点、布尔、无),则执行以下操作:
my_string = ','.join(map(str, my_list))
为什么是map/lambda魔法?这不管用吗
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)
",".join(l)
不适用于所有情况。我建议将csv模块与StringIO一起使用如果列表包含整数,则此操作无效
如果列表包含非字符串类型(如整数、浮点、布尔、无),则执行以下操作:
为什么是
map
/lambda
魔法?这不管用吗如果列表中有数字,您可以使用列表理解:
或生成器表达式:
相关问题 更多 >
编程相关推荐