2024-04-27 00:41:19 发布
网友
有一个列表:
List= ["sugar:10", "coffee:23", "sugar:47", "salt:26"]
从那张单子上我需要查字典:
Dict = {"sugar":57, "coffee":23, "salt":26}
我以前也做过一些类似的例子,但对于这个例子,我只有一个大概的想法(首先拆分列表),如果两个值有相同的键,我需要将它们加在一起。你知道吗
有人能帮我一下,告诉我怎么解决这个问题吗?你知道吗
你可以用Counter做有趣的事情!你知道吗
Counter
from collections import Counter def f(x): x, y = x.split(':') return Counter({x : int(y)}) sum(map(f, lst), Counter())
Counter({'coffee': 23, 'salt': 26, 'sugar': 57})
如果您关心性能,循环可能更合适。你知道吗
r = Counter() for x in lst: r.update(f(x)) r Counter({'coffee': 23, 'salt': 26, 'sugar': 57})
使用^{}可以很容易地实现这一点:
from collections import defaultdict li = ["sugar:10", "coffee:23", "sugar:47", "salt:26"] d = defaultdict(int) for item in li: split_item = item.split(':') d[split_item[0]] += int(split_item[1]) print(d) # defaultdict(<class 'int'>, {'sugar': 57, 'coffee': 23, 'salt': 26})
mydict={} for i in List: splited=i.split(":") if(splited[0] in mydict): mydict[splited[0]]+=int(splited[1]) else: mydict[splited[0]]=int(splited[1])
你可以用
Counter
做有趣的事情!你知道吗如果您关心性能,循环可能更合适。你知道吗
使用^{} 可以很容易地实现这一点:
相关问题 更多 >
编程相关推荐