Is there a fast way to generate a dict of the alphabet in Python?
I want to generate a dict with the letters of the alphabet as the keys, something like
letter_count = {'a': 0, 'b': 0, 'c': 0}
what would be a fast way of generating that dict, rather than me having to type it in?
Thanks for your help.
EDIT
Thanks everyone for your solutions :)
nosklo's solution is probably the shortest
Also, thanks for reminding me about the Python string module.
I find this solution more elegant:
import string
d = dict.fromkeys(string.ascii_lowercase, 0)
import string
letter_count = dict(zip(string.ascii_lowercase, [0]*26))
or maybe:
import string
import itertools
letter_count = dict(zip(string.lowercase, itertools.repeat(0)))
or even:
import string
letter_count = dict.fromkeys(string.ascii_lowercase, 0)
The preferred solution might be a different one, depending on the actual values you want in the dict.
I'll take a guess here: do you want to count occurences of letters in a text (or something similar)? There is a better way to do this than starting with an initialized dictionary.
Use Counter
from the collections
module:
>>> import collections
>>> the_text = 'the quick brown fox jumps over the lazy dog'
>>> letter_counts = collections.Counter(the_text)
>>> letter_counts
Counter({' ': 8, 'o': 4, 'e': 3, ... 'n': 1, 'x': 1, 'k': 1, 'b': 1})
If you plan to use it for counting, I suggest the following:
import collections
d = collections.defaultdict(int)