2024-03-28 09:36:29 发布
网友
将序列中的字符串连接起来,以便在每两个连续对之间添加一个逗号,您的首选方法是什么。也就是说,如何将['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]
为什么会有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)
my_list = ['a', 'b', 'c', 'd'] my_string = ','.join(my_list)
如果列表中包含数字,这将不起作用。
如果列表包含非字符串类型(如整数、浮点数、bools、None),请执行以下操作:
my_string = ','.join(map(str, my_list))
",".join(l)不适用于所有情况。我建议在StringIO中使用csv模块
",".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'
为什么会有
map
/lambda
魔力?这不管用吗?如果列表中有数字,可以使用列表理解:
或生成器表达式:
如果列表中包含数字,这将不起作用。
如果列表包含非字符串类型(如整数、浮点数、bools、None),请执行以下操作:
",".join(l)
不适用于所有情况。我建议在StringIO中使用csv模块相关问题 更多 >
编程相关推荐