如果我有一个字符列表:
a = ['a','b','c','d']
如何将其转换为单个字符串?
a = 'abcd'
如果我有一个字符列表:
a = ['a','b','c','d']
如何将其转换为单个字符串?
a = 'abcd'
当前回答
h = ['a','b','c','d','e','f']
g = ''
for f in h:
g = g + f
>>> g
'abcdef'
其他回答
这可能是最快的方法:
>> from array import array
>> a = ['a','b','c','d']
>> array('B', map(ord,a)).tostring()
'abcd'
reduce函数也可以工作
import operator
h=['a','b','c','d']
reduce(operator.add, h)
'abcd'
如果列表中包含数字,则可以使用map()和join()。
Eg:
>>> arr = [3, 30, 34, 5, 9]
>>> ''.join(map(str, arr))
3303459
除了str.join这一最自然的方式外,还可以使用io。StringIO和滥用writline一次性写入所有元素:
import io
a = ['a','b','c','d']
out = io.StringIO()
out.writelines(a)
print(out.getvalue())
打印:
abcd
当将这种方法用于生成器函数或非元组或列表的iterable时,它省去了join所创建的临时列表,以便一次性分配正确的大小(并且一个由1个字符的字符串组成的列表非常消耗内存)。
如果内存较低,并且有一个惰性求值对象作为输入,那么这种方法是最佳解决方案。
使用空字符串的join方法将所有字符串和中间的空字符串连接在一起,如下所示:
>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'