如果我有一个字符列表:
a = ['a','b','c','d']
如何将其转换为单个字符串?
a = 'abcd'
发布于 2010-12-19 13:20:51
使用空字符串的join
方法将所有字符串与其间的空字符串连接在一起,如下所示:
>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'
发布于 2010-12-19 13:22:10
这在很多流行的语言中都有效,比如JavaScript和Ruby,为什么在Python中不行呢?
>>> ['a', 'b', 'c'].join('')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'join'
奇怪的是,在Python语言中,join
方法位于str
类上:
# this is the Python way
"".join(['a','b','c','d'])
为什么join
不是list
对象中的方法,就像JavaScript或其他流行的脚本语言一样?这是Python社区如何思考的一个例子。因为join返回一个字符串,所以它应该放在string类中,而不是放在list类中,所以str.join(list)
方法意味着:使用str
作为分隔符将列表连接到一个新字符串中(在本例中,str
是一个空字符串)。
不知怎么的,过了一段时间我就喜欢上了这种思考方式。我可以抱怨Python设计中的许多事情,但不能抱怨它的一致性。
发布于 2013-02-20 12:04:16
如果您的Python解释器是旧的(例如,1.5.2,这在一些旧的Linux发行版上很常见),那么您可能无法将join()
用作任何旧的string对象的方法,而需要使用string模块。示例:
a = ['a', 'b', 'c', 'd']
try:
b = ''.join(a)
except AttributeError:
import string
b = string.join(a, '')
字符串b
将为'abcd'
。
https://stackoverflow.com/questions/4481724
复制相似问题