您如何從字符串列表中建立逗號分隔的字符串?

您最好採用哪一種方法來鏈接序列中的字符串,以便在每兩個連續對之間添加一個逗號。 就是說,您如何將例如['a', 'b', 'c']映射到'a,b,c' ? (案例['s'][]應分別映射到's''' 。) spa

我一般最終會使用相似''.join(map(lambda x: x+',',l))[:-1] ,但也會感到有些不滿意。 code


#1樓

要轉換包含數字的列表,請執行如下操做: 字符串

string  =  ''.join([str(i) for i in list])

#2樓

這是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


#3樓

",".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'

#4樓

這是清單的例子 變量

>>> 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

#5樓

>>> my_list = ['A', '', '', 'D', 'E',]
>>> ",".join([str(i) for i in my_list if i])
'A,D,E'

my_list能夠包含任何類型的變量。 這避免告終果'A,,,D,E'

相關文章
相關標籤/搜索