173 votes

tuple en python à dicter

Pour le tuple, t = ((1, 'a'),(2, 'b')) dict(t) rend {1: 'a', 2: 'b'}

Existe-t-il un bon moyen d’obtenir {'a': 1, 'b': 2} (clés et valeurs échangées)?

Je veux pouvoir retourner 1 donné 'a' ou 2 donné 'b', peut-être que la conversion en dict n'est pas la meilleure solution.

321voto

Greg Hewgill Points 356191

Essayer:

 >>> t = ((1, 'a'),(2, 'b'))
>>> dict((y, x) for x, y in t)
{'a': 1, 'b': 2}
 

82voto

jterrace Points 21939

Une méthode légèrement plus simple:

 >>> t = ((1, 'a'),(2, 'b'))
>>> dict(map(reversed, t))
{'a': 1, 'b': 2}
 

50voto

autholykos Points 168

Encore plus concis si vous êtes sur Python 2.7:

 >>> t = ((1,'a'),(2,'b'))
>>> {y:x for x,y in t}
{'a':1, 'b':2}
 

13voto

Tina Gunnarsson Points 84
>>> dict([('hi','goodbye')])
{'hi': 'goodbye'}

Or:

>>> [ dict([i]) for i in (('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14), ('CSCO', 21.14)) ]
[{'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}, {'CSCO': 21.14}]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X