Python list_of_tuples: suma drugiej wartości każdej krotki, tylko jeśli pierwsza wartość krotki == coś

Mam listę „zaznaczonych” krotek ... gdzie każda krotka jest (tag_id, wartość) ... tak:

my_list = [(tag_A, 100), (tag_A, 200), (tag_A, 300), (tag_A, 400), (tag_B, 400), (tag_B, 600)]

Chcę zsumować wartości każdej krotki z tym samym znacznikiem ... tak, aby:

sum_of_all_values_with_tag_A() = 1000

sum_of_all_values_with_tag_B() = 1000

Nie mogę wymyślić prostego Pythonicznego sposobu na to.

sum(set(value for tag_id, value in my_list)) 

... zwraca sumę WSZYSTKICH wartości.

Przypuszczam, że mogę zawinąć to pętlą for lub while, tak że tylko krotki z tagiem, który chcę podsumować, zostaną dotknięte przez to wyrażenie ...? Muszę zsumować wartości związane z obydwoma tagami ..., co daje dwie różne sumy, zróżnicowane jak powyżej. Ale nie jest w stanie wytłumaczyć eleganckiej składni dla takiej rzeczy.

Dzieje się tak w ramach wcześniej istniejącej funkcji. Byłoby wspaniale robić to bez funkcji zagnieżdżania.

Wszelkie sugestie są mile widziane!

questionAnswers(4)

yourAnswerToTheQuestion