Comment faire un dictionnaire à partir d une liste

Fermé
patachou - 14 nov. 2014 à 11:18
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
- 16 nov. 2014 à 14:45
Bonjour,

voici ma liste:
list=['tw_paris', 'tw_tokyo', 'tw_londres', 35, 'tw_moscou', 12, 'yes', 14, 18]

et je voudrai obtenir ce dictionnaire
dic={'tw_paris': '' , 'tw_tokyo':'' ,'tw_londres':35,'tw_moscou':(12,'yes',14,18)}

Que me conseiller vous?

Merci

2 réponses

aurelazy
Messages postés
189
Date d'inscription
vendredi 21 février 2014
Statut
Membre
Dernière intervention
30 janvier 2015
49
14 nov. 2014 à 11:43
Bonjour Patachou,

Voici quelques directions.
Boucle for sur ta liste, si c'est un chiffre ==> dans valeur de tw_*.
Pour ce qui est du 'yes', est_ce toujours cette valeur (avec 'no') ? donc tu recherche aussi les occurences 'yes' and 'no'.

Sinon, toujours boucle for, et toutes les occurences en 'tw_*' seront les clé et ce qui suit les valeurs de ces clé !
Voila, ce que j'aurais essayé de faire.

Bon courage ;-)
0
fiddy
Messages postés
11067
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 811
16 nov. 2014 à 14:45
Bonjour,

Effectivement, tu peux faire avec la boucle for.
Mais tu peux aussi faire plus court (notation slice) :
dict(zip(liste[::2],liste[1::2]))

Ou encore plus concis :
dict(zip(*[iter(liste)]*2))
0