【发布时间】:2012-11-09 18:10:34
【问题描述】:
可能重复:
How can I optimally concat a list of chars to a string?
我有一个字符列表:
['h', 'e', 'l', 'l', 'o']
有没有一种方法可以将此类列表的元素连接到一个不需要类似 c 的“for”循环的字符串“hello”中?谢谢。
【问题讨论】:
标签: python string list char concatenation
可能重复:
How can I optimally concat a list of chars to a string?
我有一个字符列表:
['h', 'e', 'l', 'l', 'o']
有没有一种方法可以将此类列表的元素连接到一个不需要类似 c 的“for”循环的字符串“hello”中?谢谢。
【问题讨论】:
标签: python string list char concatenation
是的。使用str.join
>>> chars = ['h', 'e', 'l', 'l', 'o']
>>> ''.join(chars)
'hello'
【讨论】:
>>> list('hello')
['h', 'e', 'l', 'l', 'o']
>>> ''.join(_)
'hello'
很有效:
from operator import add
reduce(add, ['h', 'e', 'l', 'l', 'o'])
但是针对字符串进行了优化,它也只允许字符串,否则会引发TypeError
【讨论】:
这是在 Python 中连接字符串的常用方法:
''.join(list_of_chars)
事实上,这就是recommended 的方式——出于可读性和效率的原因。例如:
''.join(['h', 'e', 'l', 'l', 'o'])
=> 'hello'
【讨论】:
sum:>>> sum(['h','e','l','l','o'],'')
sum(['h','e','l','l','o'], type('',(),{'__add__': lambda s, o: o})())。