将列表转换为字符串?

时间:2013-07-10 04:17:34

标签: python

为了使用random.choice(),我必须将我的字符串转换为列表:

>>> x = "hello"
>>> y = list(x)
>>> y
['h', 'e', 'l', 'l', 'o']

但是试图反过来产生一个实际上看起来像['h', 'e', 'l', 'l', 'o']的字符串,而不仅仅是hello。重复这样做会导致无限循环,产生如下所示的字符串:

"'", '"', ',', ' ', "'", ',', "'", ',', ' ', "'", ' ', "'", ',', ' ', "'", '"', "'", ',', ' ', '"', "'", '"', ',', ' ', "'", '"', "'", ',', ' ', "'", ',', "'", ',', ' ', "'", ' ', "'", ',', ' ', '"', "'", '"', ',', ' ', "'", ',', "'", ',', ' ', '"', "'", '"', ',', ' ', "'", ',', "'", ',', ' ', "'", ' ', "'", ',', ' '

等等。

那么,我怎样才能将列表转换回字符串:

>>> x = ['x', 'y', 'z']
>>> y = something(x)
>>> y
'xyz'

7 个答案:

答案 0 :(得分:7)

"".join (x)很容易做到。

答案 1 :(得分:5)

>>> x = "hello"
>>> y = list(x)
>>> y
['h', 'e', 'l', 'l', 'o']
>>> ''.join(y)
'hello'

答案 2 :(得分:4)

要将列表转换为python中的字符串,您可以使用string.join运算符。

 >>> x = ['x', 'y', 'z']
 >>> y = "".join(x)
 >>> y
 'xyz'

答案 3 :(得分:4)

Python String join可以解决问题。

>>> ''.join(y)
'xyz'

答案 4 :(得分:4)

>>> x = 'abc'
>>> y = list(x)
>>> y
['a', 'b', 'c']
>>> ''.join(y)
'abc'
>>> 

要使用random.choice,您无需将字符串解析为列表,字符串本身就是一个序列:

>>> random.choice('abc')
'c'
>>> random.choice('abc')
'a'
>>> 

答案 5 :(得分:3)

虽然其中一些答案正确回答了将列表转换为字符串的问题,但我会注意到您的实际问题是您希望对字符串使用random.choice()并希望首先将其转换为列表。您不需要这样做 - random.choice()接受任何序列,包括字符串。

x = 'abcde'
y = [random.choice(x) for i in range(5)]
print y

答案 6 :(得分:2)

使用join:

>>> li=['h', 'e', 'l', 'l', 'o']
>>> print ''.join(li)

即,这反转了将列表构造函数应用于字符串的内容:

>>> ''.join(list('hello'))
'hello'