Как объединить dict и список и добавить больше ценности к нему? - PullRequest
0 голосов
/ 27 сентября 2019

у нас есть этот dict и этот список

mydict={a:1,b:1}
mylist=[a,b,a,c]

Я хочу объединить этот список в dict следующим образом:

mydict={a:3,b:2,c:1}

Ответы [ 3 ]

1 голос
/ 27 сентября 2019

Я бы использовал счетчики для этого.

from collections import Counter

mydict={'a':1,'b':1}
mylist=['a','b','a','c']

c1 = Counter(mydict)
c2 = Counter(mylist)

mynewdict = c1 + c2

Counter({'a': 3, 'b': 2, 'c': 1})

Если вам нужен новый приговор как действительный дикт, а не как счетчик, то:

mynewdict = dict(mynewdict)

1 голос
/ 27 сентября 2019

Компаньон к ответу @ meTchaikovsky.

for item in mylist:
    mydict[item] = mydict.get(item, 0) + 1

1 голос
/ 27 сентября 2019

Вы можете сделать это по

for item in mylist:
    try:
        mydict[item] += 1
    except KeyError:
        mydict[item] = 1
...