2017-05-06 21 views
0
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の初心者ですので、簡単に説明できますか?ありがとうございました。Python:辞書の値を計算する

答えて

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 
関連する問題