Python 将列表转换为字符串?

Python 将列表转换为字符串?,python,Python,为了使用random.choice(),我必须将字符串转换为列表: >>> x = "hello" >>> y = list(x) >>> y ['h', 'e', 'l', 'l', 'o'] 但是,如果尝试以相反的方式执行此操作,则会产生一个实际上看起来像['h','e','l','l','o']的字符串,而不仅仅是hello。重复执行此操作会导致产生如下字符串的无限循环: "'", '"', ',', ' ', "'", ',', "

为了使用
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'
>>> ''.join(list('hello'))
'hello'
使用连接:

>>> li=['h', 'e', 'l', 'l', 'o']
>>> print ''.join(li)
也就是说,这与将列表构造函数应用于字符串的方式相反:

>>> x = ['x', 'y', 'z']
>>> y = something(x)
>>> y
'xyz'
>>> ''.join(list('hello'))
'hello'

要在python中将列表转换为所需的字符串,可以使用
string.join
操作符

 >>> x = ['x', 'y', 'z']
 >>> y = "".join(x)
 >>> y
 'xyz'
“”。join(x)
将很容易做到这一点

Python字符串实现了这一点

>>> ''.join(y)
'xyz'
要使用
random.choice
,无需解析要列出的字符串,字符串本身是一个序列:

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

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

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

我可以问一下为什么投反对票吗?我没有投反对票,但我注意到@Mattbreant也有一个反对票,你的两篇文章是唯一直接定义列表而不是从字符串生成列表的两篇文章。。。也许有人真的不喜欢直接创建字符列表?这会更简单,但我需要
list
insert
remove
index
,等等,在这种情况下,字符串-->列表-->字符串值得多做一步。