Home > database >  Add values for keys that contains similar string in python
Add values for keys that contains similar string in python

Time:12-16

I have dict as

values={'P-ETH-900':Decimal(122),'P-ETH-700':Decimal(455),'P-BTC-900':Decimal(12),'P-BTC-700':Decimal(55)}

I want to add the decimals that has condition like

eth=Decimal(0)
for i,j in values.items():
   if 'ETH' in i:
      eth=eth j

So basically, for each similar items , need to sum up the decimal values.

output:

{'ETH':'577','BTC':'67'}

CodePudding user response:

Use a dictionary comprehension that calls sum():

result = {currency: sum(v for k, v in values.items() if currency in k) for currency in ['ETH', 'BTC']}

Or you can use a defaultdict to extract the currency from the keys, assuming it's always the second component.

from collections import defaultdict

result = defaultdict(int)

for key, value in values.items():
    result[key.split('-')[1]]  = value
  • Related