我有一个字符串列表,每个字符串都具有固有类型。
mixedbag = ['True', '2.7', '3', 'Ninety']
我希望将这个转换成像这样的形式:
[True, 2.7, 3, 'Ninety']
我想到的方法是创建一个大的try/except链来评估列表中的每个项目,但这不像是处理这个问题的Pythonic方式。
您可以在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']
使用 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']