1. test if a key exists in a dict.
The lame version:
dct.has_key(key)
The Python way:
key in dct
2. test if a key NOT exist in a dict.
Do this you must not:
not key in dict
More confortable way:
key not in dict
3. use dict to count something
The mediocre way:
if key not in dct:
dct[key] = 0
dct[key] = dct[key] + 1
Awesome way:
dct[key] = dct.get(key, 0) + 1
More Awesome:
>>> from collections import Counter
>>> d = [1, 1, 1, 2, 2, 3, 1, 1]
>>> Counter(d)
Counter({1: 5, 2: 2, 3: 1})
4. dict's value is list.
Diao Si's way:
dct = {}
for (key, value) in data:
if key in dct:
dct[key].append(value)
else:
dct[key] = [value]
Pu Tong:
dct = {}
for (key, value) in data:
group = dct.setdefault(key, []) # key might exist already
group.append(value)
dct = defaultdict(list)
for (key, value) in data:
dct[key].append(value) # all keys have a default already
Thanks Lao Qian!