Python:在字典中计算值

时间:2017-05-06 07:41:42

标签: python-3.x dictionary

    attendance = {5: ['Irving', 'Sarah'],
                  1: ['Bill'],
                  2: ['Sarah', 'Fred'],
                  7: ['Paul', 'Alice', 'Irving'],
                  8: ['Bill', 'Fred', 'Sarah'],
                  3: ['Alice', 'Bob'],
                  4: ['David', 'Paul', 'Tom']}

    for keys, values in attendance.items():
        for x in values:
            print(keys, " : ", len(x))

我正在尝试使用len()计算字典中的值的数量,但我得到的值是错误的。
我是Python新手,你能用简单的语言解释一下吗?谢谢。

1 个答案:

答案 0 :(得分:0)

dict.items()上的迭代产生单个键的元组及其值。您似乎打印的是每个字符串的len,而不是列表。你应该做这样的事情:

In [2]:     attendance = {5: ['Irving', 'Sarah'],
   ...:                   1: ['Bill'],
   ...:                   2: ['Sarah', 'Fred'],
   ...:                   7: ['Paul', 'Alice', 'Irving'],
   ...:                   8: ['Bill', 'Fred', 'Sarah'],
   ...:                   3: ['Alice', 'Bob'],
   ...:                   4: ['David', 'Paul', 'Tom']}
   ...: 
   ...:     for key, value in attendance.items():
   ...:         print(key, " : ", len(value))
1  :  1
2  :  2
3  :  2
4  :  3
5  :  2
7  :  3
8  :  3