7

リストがあります:

ab = [1, 2, a, b, c]

やった:

strab = str(ab).

strabは文字列です。

その文字列をリストにキャストしたい。

どうやってやるの?

4

3 に答える 3

18

最も簡単で安全な方法は、次を使用することast.literal_eval()です。

import ast

ab = [1, 2, 'a', 'b', 'c']    # a list
strab = str(ab)               # the string representation of a list
strab
=> "[1, 2, 'a', 'b', 'c']"

lst = ast.literal_eval(strab) # convert string representation back to list
lst
=> [1, 2, 'a', 'b', 'c']

ab == lst                     # sanity check: are they equal?
=> True                       # of course they are!

呼び出しeval()も機能しますが、安全ではないため使用しないでください。

eval(strab)
=> [1, 2, 'a', 'b', 'c']
于 2013-07-21T02:35:12.643 に答える
6

ast パッケージを使用します。

import ast
lst = ast.literal_eval(strab)
于 2013-07-21T02:34:37.087 に答える
1

numpy 配列要素をシーケンスで設定するコンテキストでは、組み込みの結合を使用して文字列への設定をバイパスできます。

str_list_obj = '-'.join(list_obj)

その後、必要に応じて、同じコネクタを使用して文字列シーケンスを再度分割します (リストの文字列に表示されない場合)。

og_list_obj = str_list_obj.split("-")

于 2017-10-27T12:45:26.043 に答える