python – 在For循环中添加List(我最初将List设置为什么?)
发布时间:2020-12-20 11:28:15 所属栏目:Python 来源:网络整理
导读:这是一个初学者的问题. 我将在他们的列表中有一个具有不同数量值的字典. dict1 = {'a': [0,1,2],'b': [3,4,5]}dict2 = {'a': [0,2,3],'b': [4,5,6,7]} 对于每个dict,列表中的项目数相同. LEN(dict1['a']) == LEN(dict1['b'])LEN(dict1['a']) != LEN(dict2['b
这是一个初学者的问题.
我将在他们的列表中有一个具有不同数量值的字典. dict1 = {'a': [0,1,2],'b': [3,4,5]} dict2 = {'a': [0,2,3],'b': [4,5,6,7]} 对于每个dict,列表中的项目数相同. LEN(dict1['a']) == LEN(dict1['b']) LEN(dict1['a']) != LEN(dict2['b']) 有了这个,这是我的问题.我试图将字典中的值一起添加. dict1应该等于[3,7] dict2应该等于[4,8,10] 到目前为止我的代码是这样的: for x in dict1: results = [dict1[x][i] + results[i] for i in range(len(dict1[x]))] 我遇到的问题是结果[i].我在for子句之前创建此列表吗? 解决方法
您可以使用map与operator.add:
>>> from operator import add >>> map(add,*dict1.values()) [3,7] >>> map(add,*dict2.values()) [4,10] 或者如果您不想导入任何内容,则使用列表理解为 >>> [sum(x) for x in zip(*dict1.values())] [3,7] >>> [sum(x) for x in zip(*dict2.values())] [4,10] 更新: def func(dic,*keys): return [sum(x) for x in zip(*(dic[k] for k in keys))] >>> dict1 = {'a': [0,5],'c':[6,7,8]} >>> func(dict1,'a') [0,2] >>> func(dict1,'a','b') [3,7] >>> func(dict1,'b','c') [9,11,13] >>> func(dict1,'c','a') [9,12,15] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |