-1

を使用する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'
4

7 に答える 7

7

"".join (x)かなり簡単にできます。

于 2013-07-10T04:19:55.317 に答える
5
>>> x = "hello"
>>> y = list(x)
>>> y
['h', 'e', 'l', 'l', 'o']
>>> ''.join(y)
'hello'
于 2013-07-10T04:20:18.397 に答える
4

string.join必要に応じてPythonでリストを文字列に変換するには、演算子を使用できます。

 >>> x = ['x', 'y', 'z']
 >>> y = "".join(x)
 >>> y
 'xyz'
于 2013-07-10T04:19:41.080 に答える
4

Python String joinがトリックを行います。

>>> ''.join(y)
'xyz'
于 2013-07-10T04:20:05.313 に答える
2

結合を使用:

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

つまり、リスト コンストラクターを文字列に適用することを逆にします。

>>> ''.join(list('hello'))
'hello'
于 2013-07-10T04:19:32.183 に答える