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)
Gao Fu Shuai:
dct = defaultdict(list) for (key, value) in data: dct[key].append(value) # all keys have a default already
Thanks Lao Qian!