我对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
? ?
我想也许我可以在开始时迭代我的列表并将其属性的类型存储在列表中(list_b
)。稍后当我将字符串转换为列表时,我将爆炸字符串并将字符串转换为与list_b
对应的变量类型。
我想知道是否有比这更直接的方式?
答案 0 :(得分:5)
您可以使用ast.literal_eval
将字符串转换为Python对象。
from ast import literal_eval
s = "[1, 'house', 3]"
l = literal_eval(s)
print(l)
# [1, 'house', 3]
请注意,根据上面链接的文档,字符串只能由字符串,字节,数字,元组,列表,dicts,集合,布尔值和None
组成。
答案 1 :(得分:2)