I am iterating through a dict and counting up the number of items that are of a certain format in the dict.
sum(1 for key in mydict.keys() if re.match('^D\\d{2}$',key))
I am trying to change it so that I can add up the combined sum of the values who’s keys match my regex format.
So instead of ‘1’ being added for each key that matches my format I want to the value of each matching key.
I was trying something like below but I get an error saying: unsupported operand type(s) for +: 'int' and 'dict_values'
sum(mydict.values() for key in mydict.keys() if re.match('^D\\d{2}$',key))
>Solution :
Iterate over the keys and values via items and you can sum the values:
sum(v for k, v in mydict.items() if re.match('^D\\d{2}$', k))
Note that I’m assuming the values in mydict are numeric — if not, you’ll want to sum int(v) (or maybe float(v)) instead of just v.