为了使用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'
答案 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'