Python为dict添加数字

时间:2015-04-28 17:33:44

标签: python django

我使用Django 1.8。我有一张桌子“桌子”。我想在此掠夺:

test['Kamil'] += 1
test['Wiesiek'] +=1

最后看起来像这样 - 例如:

test['Kamil'] = 10
test['Wiesiek'] = 5

Data = Table.objects.filter(User=request.user.username)

        test = {}
        for i in Data:
            test[i.Name] += 1

unfortunelly django在/ page /

显示错误.. KeyError

如果我没有“+ =” - “=”那么一切正常。

我需要计算出多少相同的名字。我可以访问

的名称和数量

谢谢:)

3 个答案:

答案 0 :(得分:4)

当您尝试+ =

时,您的词典没有该键的值

您可以使用集合中的defaultdict,它将默认值0设置为新键

from collections import defaultdict
Data = Table.objects.filter(User=request.user.username)
    test = defaultdict(int)
    for i in Data:
        test[i.Name] += 1

答案 1 :(得分:1)

检查密钥是否存在

test['Kamil'] = 10
test['Wiesiek'] = 5

Data = Table.objects.filter(User=request.user.username)

        test = {}
        for i in Data:
            if test.get(i.Name, None):
                test[i.Name] += 1
            else:
                test[i.Name] = 1

答案 2 :(得分:0)

您是否忘记先将密钥放入字典? E.G。

test = {}
for i in Data:
    if i.Name not in test:
       test[i.Name] = 1
    else:
       test[i.Name] += 1