0
votes

Groupe Python et somme avec une chaîne comme des clés

Question des débutants ... Si possible sans pandas, je voudrais résumer des groupes dans une liste ou un tableau. Entrée: xxx

sortie souhaitée: xxx

merci!


1 commentaires

Je vous suggère de commencer par avoir un morceau de papier et de crayon et écrivez les étapes que vous devez faire cela. Une fois que vous avez une idée claire dans votre tête, en utilisant l'anglais ou la langue écrite que vous connaissez le mieux, il sera plus facile de le traduire en python.


5 Réponses :


0
votes

Vous pouvez utiliser ceci: xxx

A dict ne peut avoir que des clés uniques, donc nous résolvons la moitié des problèmes. Pour démarrer, chaque valeur de chaque touche sera 0.

Suivant, nous ithétons par entrée et ajoute chaque valeur à sa clé correspondante dans notre dict . Alors maintenant, notre travail est presque terminé.

Nous n'avons besoin que de la convertir en forme que vous souhaitez, à l'aide d'une liste de compréhension.


0 commentaires

2
votes

Vous pouvez résumer sur une touche égale à l'aide d'un dictionnaire. Si vous avez vraiment besoin, vous pouvez toujours recréer le résultat à une liste de listes via une compréhension de la liste: xxx


2 commentaires

Le d.get (sl [0], 0) est excellent, il simplifie beaucoup la boucle! +1


Merci, fonctionne parfaitement!



0
votes

Je recommanderais d'aller pour un dict comme indiqué ci-dessous: xxx

sortie: xxx < / pré>


0 commentaires

2
votes

Vous pouvez en faire cela:

from collections import defaultdict

sums = defaultdict(lambda: 0)
for arr in input:
    sums[arr[0]] += arr[1]

output = [[key, value] for key,value in sums.items()] 


0 commentaires

0
votes

Cela devrait fonctionner:

Output = [ [k,sum(a[1] for a in Input if a[0] == k)] for k in set(a[0] for a in Input) ]


0 commentaires