pythonfor循环加2_python – 在For循环中添加List(我最初将List设置为什么?)

这是一个初学者的问题.

我将在他们的列表中有一个具有不同数量值的字典.

dict1 = {'a': [0,1,2], 'b': [3,4,5]}

dict2 = {'a': [0,1,2,3], 'b': [4,5,6,7]}

对于每个dict,列表中的项目数相同.

LEN(dict1['a']) == LEN(dict1['b'])

LEN(dict1['a']) != LEN(dict2['b'])

有了这个,这是我的问题.我试图将字典中的值一起添加.

dict1应该等于[3,5,7]

dict2应该等于[4,6,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, 5, 7]

>>> map(add,*dict2.values())

[4, 6, 8, 10]

或者如果您不想导入任何内容,则使用列表理解为zip:

>>> [sum(x) for x in zip(*dict1.values())]

[3, 5, 7]

>>> [sum(x) for x in zip(*dict2.values())]

[4, 6, 8, 10]

更新:

def func(dic, *keys):

return [sum(x) for x in zip(*(dic[k] for k in keys))]

>>> dict1 = {'a': [0,1,2], 'b': [3,4,5], 'c':[6,7,8]}

>>> func(dict1,'a')

[0, 1, 2]

>>> func(dict1,'a','b')

[3, 5, 7]

>>> func(dict1,'b','c')

[9, 11, 13]

>>> func(dict1,'b','c','a')

[9, 12, 15]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值