文字列のリストを正しい型 (int、float、boolean など) に 1 行で変換し、値をアンパックしたいと考えています。
以下よりもこれを達成できる組み込みモジュールはありますか?:
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 を作成していますが、1 行で変換するエレガントな方法があることを期待していました。これは、この特定の例に対する単なる質問ではなく、次のようなことを達成できるモジュールに関する質問です。
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()]