5 votes

Comment créer un dictionnaire avec une nouvelle CLE avec les données de la liste ?

J'ai la liste suivante que je veux convertir en dictionnaire.

newData = ['John', 4.52, 'Jane', 5.19, 'Ram', 4.09, 'Hari', 2.97, 'Sita', 3.58, 'Gita', 4.1]

Je veux créer un dictionnaire comme celui-ci :

newDict = [{'name': 'John', 'Height': 4.52},
           {'name': 'Jane', 'Height': 5.19},
           {'name': 'Ram', 'Height': 4.09},
           {'name': 'Hari', 'Height': 2.97},
           {'name': 'Sita', 'Height': 3.58},
           {'name': 'Gita', 'Height': 4.1}]

Quelle sera la méthode la plus simple pour y parvenir ?

6voto

Fomalhaut Points 2544

Profitez-en :

newData = ['John', 4.52, 'Jane', 5.19, 'Ram', 4.09, 'Hari', 2.97, 'Sita', 3.58, 'Gita', 4.1]

newDict = [
    {"name": name, "height": height}
    for name, height in zip(newData[::2], newData[1::2])
]

print(newDict)

5voto

2ps Points 6487

Voici une liste rapide d'expansion que vous pouvez faire :

newDict = [{ 'name': newData[x], 'Height': newData[x + 1] } for x in range(0, len(newData), 2) ]

L'astuce consiste à utiliser le paramètre step avec range qui vous donne tous les autres éléments.

2voto

harshil9968 Points 2147
newDict = []
for i in range(0,len(newList),2):
    newDict.append(
        {'name':newList[i],
        'hieght':newList[i+1]}
    )

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