如果我有一个字符列表:
a = ['a','b','c','d']
Run Code Online (Sandbox Code Playgroud)
如何将其转换为单个字符串?
a = 'abcd'
Run Code Online (Sandbox Code Playgroud)
Dan*_*ach 565
使用join空字符串的方法将所有字符串与空字符串连接在一起,如下所示:
>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'
Run Code Online (Sandbox Code Playgroud)
Pau*_*ine 36
这适用于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'
Run Code Online (Sandbox Code Playgroud)
但是在Python中,join方法是在str类中:
# this is the Python way
"".join(['a','b','c','d'])
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,不是吗?为什么在JavaScript或其他流行的脚本语言中join不是list对象中的方法?这是Python社区如何思考的一个例子.由于join返回一个字符串,它应该放在字符串类中,而不是放在列表类中,因此该str.join(list)方法意味着:使用str分隔符将列表连接成一个新字符串(在这种情况下str是一个空字符串).
不知怎的,过了一段时间我才开始喜欢这种思维方式.我可以抱怨Python设计中的很多东西,但不是它的连贯性.
Kyl*_*yle 15
如果您的Python解释器是旧的(例如1.5.2,这在一些较旧的Linux发行版中很常见),那么您可能无法join()在任何旧的字符串对象上使用该方法,而您将需要使用字符串模块.例:
a = ['a', 'b', 'c', 'd']
try:
b = ''.join(a)
except AttributeError:
import string
b = string.join(a, '')
Run Code Online (Sandbox Code Playgroud)
字符串b将是'abcd'.
big*_*gle 10
这可能是最快的方式:
>> from array import array
>> a = ['a','b','c','d']
>> array('B', map(ord,a)).tostring()
'abcd'
Run Code Online (Sandbox Code Playgroud)
小智 5
reduce功能也有效
import operator
h=['a','b','c','d']
reduce(operator.add, h)
'abcd'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
745060 次 |
| 最近记录: |