convertit une chaîne à la dict l'aide de la liste de compréhension

Que je suis venu sur ce problème quelques fois et il ne semble pas possible de trouver une solution simple.
Dire que j'ai une chaîne

string = "a=0 b=1 c=3"

Je veux les convertir dans un dictionnaire avec a, b et c étant la clé et 0, 1, et 3 cours de leurs valeurs respectives (converti en int). Évidemment, je peux faire ceci:

list = string.split()
dic = {}
for entry in list:
    key, val = entry.split('=')
    dic[key] = int(val)

Mais je n'aime pas vraiment que pour la boucle, Elle semble tellement simple que vous devriez être en mesure de le convertir à une sorte de liste de la compréhension de l'expression. Et qui fonctionne pour un peu plus simple des cas où la val peut être une chaîne de caractères.

dic = dict([entry.split('=') for entry in list])

Cependant, j'ai besoin de convertir val int à la volée et de faire quelque chose comme ceci est syntaxiquement incorrect.

dic = dict([[entry[0], int(entry[1])] for entry.split('=') in list])

Donc ma question est: est-il un moyen d'éliminer la boucle de l'aide de la liste de compréhension? Si non, est-il intégré dans la méthode python qui le fera pour moi?

Remarque: N'utilisez pas de fonctions intégrées comme noms de variable (string, list, etc.)

OriginalL'auteur Pavel | 2009-08-07