-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path1.06.py
More file actions
67 lines (55 loc) · 928 Bytes
/
1.06.py
File metadata and controls
67 lines (55 loc) · 928 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 在字典中将键映射到多个值上
# multidict
# list
d = {
'a': [1, 2, 3],
'b': [4, 5]
}
# set
e = {
'a': {1, 2, 3},
'b': {4, 5}
}
f = {
'a': [1, 2, 3],
'b': [4, 5]
}
print(d == e)
print(d == f)
from collections import defaultdict
h = defaultdict(list)
h['a'].append(1)
h['a'].append(2)
h['b'].append(4)
i = defaultdict(set)
i['a'].add(2)
i['a'].add(1)
i['b'].add(4)
print(h)
print(i)
'''
False
True
defaultdict(<class 'list'>, {'a': [1, 2], 'b': [4]})
defaultdict(<class 'set'>, {'a': {1, 2}, 'b': {4}})
'''
# A regular dictionary
j = {}
j.setdefault('a', []).append(2)
j.setdefault('a', []).append(1)
j.setdefault('b', []).append(4)
print(j)
'''
{'a': [2, 1], 'b': [4]}
'''
# bad
pairs = ((1, 2), (3, 4))
d = {}
for key, value in pairs:
if key not in d:
d[key] = []
d[key].append(value)
# good
d = defaultdict(list)
for key, value in pairs:
d[key].append(value)