2011-03-09 4 views

Répondre

6

Si vous avez vos chaînes dans un itérables que vous pouvez faire:

g_proptypes = dict((string, i) for i, string in enumerate(string_list)) 
+0

@Kenny: Mon mauvais, fixe. –

+0

J'ai vérifié. Il donne {0: 'uint8', 1: 'sint8' ...}. J'ai besoin du contraire. – Manish

+0

@Manish: Je viens de corriger ça, maintenant ça devrait marcher. –

0

vous pouvez le faire si les entiers sont séquentiels: http://codepad.org/o7ryZ09O

myList = ['uint8','sint8','uint16','sint16','uint32'] 
myStr = 'uint16' 
myNum = myList.index(myStr); 
print myNum; 
+0

Il peut être utile de demander OP si elle était intentionnelle qu'il cartographie de la chaîne à l'index dans le tableau. – mduvall

+0

Oui, merci. @cowboy a déjà écrit une solution élégante – DhruvPathak

1

>>> lst = ['uint8','sint8','unit16','sint16','uint32','etc']

>>> g_proptypes = dict(map(reversed,enumerate(lst)))

>>> g_proptypes

{'sint16': 3, 'unit16': 2, 'uint8': 0, 'etc': 5, 'sint8': 1, 'uint32': 4}

Questions connexes