如何将列表转换为字符串,并将此字符串转换回初始列表?

use*_*919 1 python string list

我有Python的以下问题,我想知道是否有一个直接的方法来处理它(使用我不知道的特定功能,等等).

我有一个包含不同类型输入的列表(整数,字符串等).我使用该str()函数将列表转换为字符串.现在变量的类型是一个字符串.我用这个字符串做一些处理,然后我想用它有的初始变量类型(整数,字符串等)将字符串转换回初始列表.

这是一个例子:

             list = [1,'house',3]
             print(type(list))  # gives <class list>
             print(type(list[0])) # gives <type int>
             print(type(list[1])) # gives <type str>

             string = str(list)
             print(type(string)) # gives <type string>
             ... # use this string to process data


            # convert the string into the initial list
             ? ?
Run Code Online (Sandbox Code Playgroud)

我想也许我可以在开始时迭代我的列表并将其属性的类型存储在列表(list_b)中.稍后当我将字符串转换为列表时,我将爆炸字符串并将字符串转换为对应的变量类型list_b.

我想知道是否有比这更直接的方式?

Ffi*_*ydd 6

您可以使用ast.literal_eval将字符串转换为Python对象.

from ast import literal_eval

s = "[1, 'house', 3]"
l = literal_eval(s)
print(l)
# [1, 'house', 3]
Run Code Online (Sandbox Code Playgroud)

请注意,根据上面链接的文档,字符串只能由字符串,字节,数字,元组,列表,dicts,集合,布尔值和None.