首页 > 解决方案 > 将具有相同值的列表转换为 dict - 智能 zip (python)

问题描述

我有清单:

['apples', 400, 'sweets', 300, 'apples', 750]

应用功能后:

def Convert(a):
    it = iter(a)
    res_dct = dict(zip(it, it))
    return res_dct

我得到结果: {'apples': 750, 'sweets': 300}

但是我需要: {'apples': 1150, 'sweets': 300}

标签: pythondictionary

解决方案


如果存在,您可以使用.get()fromdictionary如果不key存在,您可以用钱求和,如果不key存在,您可以像下面这样求和。0money

试试这个:

lst = ['apples', 400, 'sweets', 300, 'apples', 750]
    
dct = {}
for frt, mny in zip(lst[::2], lst[1::2]):
    dct[frt] = dct.get(frt, 0) + mny
    
print(dct)

输出:

{'apples': 1150, 'sweets': 300}

推荐阅读