I am teaching myself Python by going through Allen Downing's "Think Python." I have come across what should be a simple exercise, but I am not getting the correct answer. Here's the exercise:
Given: def histogram(s): d = dict() for c in s: if c not in d: d[c] = 1 else: d[c] += 1 return d Dictionaries have a method called get that takes a key and a default value. If the key appears in the dictionary, get returns the corresponding value; otherwise it returns the default value. For example: >>> h = histogram('a') >>> print h {'a': 1} >>> h.get('a', 0) 1 >>> h.get('b', 0) 0 Use get to write histogram more concisely. You should be able to eliminate the if statement. Here's my code: def histogram(s): d = dict() for c in s: d[c]= d.get(c,0) return d This code returns a dictionary of all the letters to any string s I give it but each corresponding value is incorrectly the default of 0. What am I doing wrong? -- http://mail.python.org/mailman/listinfo/python-list