将字符列表转换为字符串怎么弄?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (10)
  • 关注 (0)
  • 查看 (136)

如果我有一份查表:

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

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

a = 'abcd'
提问于
用户回答回答于

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

>>> a = ['a', 'b', 'c', 'd']
>>> ''.join(a)
'abcd'
用户回答回答于
g = ['a', 'b', 'c', 'd']
f=''
for i in range(0,len(g)):
    f=f+g[i]
print f
用户回答回答于

如果列表中包含数字,则可以使用map()带着join()...

例:

    arr = [3, 30, 34, 5, 9]
    ''.join(map(str,arr))

>> 3303459
用户回答回答于

你也可以用operator.concat()就像这样:

>>> from operator import concat
>>> a = ['a', 'b', 'c', 'd']
>>> reduce(concat, a)
'abcd'

如果你正在使用Python 3,则需要添加以下内容:

>>> from functools import reduce

因为reduce()已从Python 3中移除,现在使用了functools.reduce().

用户回答回答于

使用join空分离器

h = ['a','b','c','d','e','f']
print ''.join(h)

或使用reduce带着add操作符

import operator
h=['a','b','c','d']
reduce(operator.add, h)
用户回答回答于

reduce函数也起作用。

import operator
h=['a','b','c','d']
reduce(operator.add, h)
'abcd'
用户回答回答于
h = ['a','b','c','d','e','f']
g = ''
for f in h:
    g = g + f

>>> g
'abcdef'
用户回答回答于

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

用户回答回答于

这可能是最快的方法:

>> from array import array
>> a = ['a','b','c','d']
>> array('B', map(ord,a)).tostring()
'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中的方法。list对象,比如JavaScript或其他流行的脚本语言?这是Python社区如何思考的一个例子。由于联接返回一个字符串,所以它应该放在String类中,而不是在List类中,所以str.join(list)方法的意思是:使用str作为分隔符(在本例中)str是空字符串)。

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

所属标签

可能回答问题的人

  • 西风

    renzha.net · 站长 (已认证)

    7 粉丝1 提问9 回答
  • 四无君

    0 粉丝0 提问3 回答
  • o o

    3 粉丝490 提问2 回答
  • Dingda

    Dingda · 站长 (已认证)

    4 粉丝0 提问2 回答

扫码关注云+社区

领取腾讯云代金券