Si
d1 = {'Mercure': 10, 'Vénus': 20, 'Terre': 30, 'Mars': 40}
et
d2 = {'Dix': 'M', 'Vingt': 'V', 'Trente': 'E', 'Quarante': 'F'}
alors comment générer un nouveau dictionnaire où les clés appartiennent à d1 et les valeurs appartiennent à d2, similaire au dictionnaire suivant:
newD = {'Mercure': 'M', 'Vénus': 'V', 'Earth': 'E', 'Mars': 'F'}
Comment le faire par la compréhension, les boucles ou tout autre moyen?
Merci.
3 Réponses :
Si l'association est basée sur la commande, vous pouvez utiliser zip:
>>> from num2words import num2words
>>> d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
>>> d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}
>>> {k: d2[num2words(v).title()] for k, v in d1.items()}
{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}
Si vous souhaitez associer en fonction de 10 - > 'Ten' etc, num2words devrait fonctionner:
>>> d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
>>> d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}
>>> {k: v for k, v in zip(d1.keys(), d2.values())}
{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}
Voici comment utiliser la méthode zip () pour compresser les clés de d1 avec les valeurs de d2 :
{'Mercury': 'M', 'Venus': 'V', 'Earth': 'E', 'Mars': 'F'}
Résultat:
d1 = {'Mercury': 10, 'Venus': 20, 'Earth': 30, 'Mars': 40}
d2 = {'Ten': 'M', 'Twenty': 'V', 'Thirty': 'E', 'Forty': 'F'}
newD = dict(zip(d1,d2.values()))
print(newD)
{list(d1.keys())[k]:list(d2.values())[k] for k in range(len( d1.keys()) )}
Quel est exactement votre plan pour expliquer à Python comment associer
10à'Ten'etc.?