将字符列表转换为字符串

2024-04-24 00:32:06 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个字符列表:

a = ['a','b','c','d']

如何将其转换为单个字符串?

a = 'abcd'

Tags: 字符串列表字符abcd
3条回答

使用空字符串的join方法将所有字符串与中间的空字符串连接起来,如下所示:

>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'

这在很多流行的语言中都有效,比如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不像JavaScript或其他流行的脚本语言那样是list对象中的方法?这是Python社区如何思考的一个例子。由于join返回一个字符串,它应该放在string类中,而不是list类中,因此str.join(list)方法意味着:使用str作为分隔符将列表连接到一个新字符串中(在本例中,str是一个空字符串)。

不知怎么的,过了一段时间我就爱上了这种思维方式。我可以抱怨Python设计中的很多事情,但不能抱怨它的一致性。

如果您的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'

相关问题 更多 >