私はこの問題に何度か遭遇しましたが、簡単な解決策を見つけられないようです。文字列があるとします
string = "a=0 b=1 c=3"
これを、a、b、c をキーとし、0、1、3 をそれぞれの値 (int に変換) とする辞書に変換したいと考えています。明らかに私はこれを行うことができます:
list = string.split()
dic = {}
for entry in list:
key, val = entry.split('=')
dic[key] = int(val)
しかし、私はその for ループがあまり好きではありません。非常に単純に見えるので、ある種のリスト内包表記に変換できるはずです。これは、 が文字列になる可能性がある、少し単純なケースで機能しval
ます。
dic = dict([entry.split('=') for entry in list])
ただし、その場で val を int に変換する必要があり、このようなことを行うのは構文的に正しくありません。
dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])
私の質問は次のとおりです。リスト内包表記を使用して for ループを排除する方法はありますか? そうでない場合、私のためにそれを行うPythonメソッドが組み込まれていますか?