python dict.setdefault()无法输出默认值

时间:2018-03-13 01:10:48

标签: python dictionary

使用python dict时遇到问题。

    class Solution():
        def solve(self, A):
        lst = {}
        for i in A:
            for c in i:
                lst.setdefault(ord(c) - ord('0'), 0)
                lst[ord(c) - ord('0')] += 1
        return lst

但我无法输出默认值

Here is the output

如何获得dict中的所有键和值?

1 个答案:

答案 0 :(得分:1)

你没有获得所有价值的原因是因为你从未真正经历过它们。要使setdefault设置密钥,需要先调用它,否则它如何知道密钥应该是什么?

这就是为什么在你的第一个例子中,当你没有输入时,它输出一个空字典,而在你的第二个例子中,当你有输入12时,字典只包含一个12

如果您事先知道所有可能的值,我建议您先创建字典,然后填充它。

def solve(self, A):
    lst = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}
    # Though a cleaner but less clear way might be:
    # lst = {key: 0 for key in range(10)}
    for i in A:
        for c in i:
            lst[ord(c) - ord('0')] += 1
            # side note you can also get the number with:
            # lst[int(c)]