-1
votes

Fonctionner avec des valeurs de dictionnaire

J'ai un dictionnaire qui, à l'heure actuelle, 2 clés, mais aurait pu davantage (chaque clé aura toujours une liste unique avec la quantité de valeurs qu'ils sont).

Je dois faire l'opération suivante:

Si dans la première touche, j'ai 2 valeurs dans ma liste et, dans la deuxième touche, j'ai une valeur dans ma liste, puis je cherche à multiplier ces valeurs, exemple: P>

dict_v = {1: ['12X58', '14X53'], 2: ['10X60'], 3: ['8X58', '8X67', '10X49', '10X54']}

total = 2 * 1 * 4 = 8


0 commentaires

5 Réponses :


3
votes

Vous pouvez effectuer ce qui suit:

import math 

dict_v = {1: ['12X58', '14X53'], 2: ['10X60'], 3: ['8X58', '8X67', '10X49', '10X54']}

print(math.prod([len(v) for v in dict_v.values()]))


1 commentaires

Merci, j'ai essayé avec une librairie engourdie, tu m'as donné une bonne idée, meilleures salutations.



1
votes

Vous pouvez utiliser FuncTools .ReRuce Pour multiplier les longueurs de toutes les valeurs de la liste (obtenues par mappage len à chaque valeur): xxx

sortie xxx


0 commentaires

1
votes

Utilisez la fonction Réduire pour calculer la multiplication de la len des valeurs de dictionnaire.

dict_v = {1: ['12X58', '14X53'], 2: ['10X60'], 3: ['8X58', '8X67', '10X49', '10X54']}
total = reduce(lambda x,y: x*y, map(len, dict_v.values()))


0 commentaires

1
votes

Celui-ci peut ne pas être aussi pythonique mais il illustre les étapes bien xxx


0 commentaires

1
votes

sans carte () , la manière plus rapide pourrait être la suivante: xxx

carte coûtera plus de frais généraux. < HR>

par test ( TimeIt.TimeIt: Numéro = 100 ): xxx

pas sûr math.prod .Je ne pouvait pas l'exécuter.


0 commentaires