我想在一行中将字符串列表转换为正确的类型(即 int、float、boolean 等)并解压缩这些值。
是否有内置模块可以比以下更好地完成此任务?:
strLst = ["a", "1.0", "2", "True"]
a, b, c, d = [[s[0], float(s[1]), int(s[2]), bool(s[3])] for s in [strLst]][0]
编辑:
我正在从一个大文本文件创建 a、b、c、d,我希望有一种优雅的方法可以在一行上进行转换。这不仅仅是这个特定示例的问题,而是关于可以完成以下操作的模块的问题:
with open("file.txt") as f:
a, b, c, d = [[s[0], float(s[1]), int(s[2]), bool(s[3])] \
for s in [next(f)[:-1].split()]][0]
根据 Niclas Nilsson 的评论,我可以执行以下操作:
a,b,c,d = [ast.literal_eval(s) for s in next(f)[:-1].split()]