您最好采用哪一种方法来链接序列中的字符串,以便在每两个连续对之间添加一个逗号。 就是说,您如何将例如['a', 'b', 'c']
映射到'a,b,c'
? (案例['s']
和[]
应分别映射到's'
和''
。) spa
我一般最终会使用相似''.join(map(lambda x: x+',',l))[:-1]
,但也会感到有些不满意。 code
要转换包含数字的列表,请执行如下操做: 字符串
string = ''.join([str(i) for i in list])
这是Python 3.0中容许非字符串列表项的替代解决方案: get
>>> alist = ['a', 1, (2, 'b')]
标准方式 string
>>> ", ".join(map(str, alist)) "a, 1, (2, 'b')"
替代解决方案 it
>>> import io >>> s = io.StringIO() >>> print(*alist, file=s, sep=', ', end='') >>> s.getvalue() "a, 1, (2, 'b')"
注意:逗号后的空格是故意的。 io
",".join(l)
不适用于全部状况。 我建议将CSV模块与StringIO一块儿使用 import
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'
这是清单的例子 变量
>>> myList = [['Apple'],['Orange']] >>> myList = ','.join(map(str, [i[0] for i in myList])) >>> print "Output:", myList Output: Apple,Orange
更准确的:- lambda
>>> myList = [['Apple'],['Orange']] >>> myList = ','.join(map(str, [type(i) == list and i[0] for i in myList])) >>> print "Output:", myList Output: Apple,Orange
示例2:
myList = ['Apple','Orange'] myList = ','.join(map(str, myList)) print "Output:", myList Output: Apple,Orange
>>> my_list = ['A', '', '', 'D', 'E',] >>> ",".join([str(i) for i in my_list if i]) 'A,D,E'
my_list
能够包含任何类型的变量。 这避免告终果'A,,,D,E'
。