所以我有一个字符串列表,每个字符串都有固有的类型。
mixedbag = ['True', '2.7', '3', 'Ninety']
我想将其转换为如下所示:
[True, 2.7, 3, 'Ninety']
我想到的是创建一个大的try / except链来评估列表中的每个项目,但这并不像处理这个问题的pythonic方法。
答案 0 :(得分:5)
您可以在try-except块中使用ast.literal_eval
。
from ast import literal_eval
def unmix(ele):
try:
ele = literal_eval(ele)
except ValueError:
pass
return ele
<强>演示强>
>>> list(map(unmix, mixedbag))
[True, 2.7, 3, 'Ninety']
答案 1 :(得分:0)
使用ast.literal_eval
函数的解决方案:
import ast
mixedbag = ['True', '2.7', '3', 'Ninety']
evaled = []
for i in mixedbag:
try:
evaled.append(ast.literal_eval(i))
except ValueError:
evaled.append(i)
print(evaled)
输出:
[True, 2.7, 3, 'Ninety']