-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathWQU_Project_Pw2.py
More file actions
75 lines (65 loc) · 1.88 KB
/
Copy pathWQU_Project_Pw2.py
File metadata and controls
75 lines (65 loc) · 1.88 KB
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
66
67
68
69
70
71
72
73
74
75
bnf_names = {d['bnf_name'] for d in scripts}
bnf_names = [name for name in bnf_names]
assert(len(bnf_names) == 5619)
groups = {name: [] for name in bnf_names}
for script in scripts:
name = script['bnf_name']
if not len(groups[name]) == 0:
groups[name].append(script['items'])
else:
groups[name] = [script['items']]
def dict_sum(data):
length = 0
b = []
for key in data:
a = (key, sum(data[key]))
b.append(a)
length += 1
return b
def tuple_max(data):
maxi = 0
key = ''
for i in range(len(data)):
if data[i][1] > maxi:
maxi = data[i][1]
key = data[i][0]
else:
maxi = maxi
key = key
return (key, maxi)
items = dict_sum(groups)
#max_item = [("", 0)]
max_item = [tuple_max(items)]
def group_by_field1(data, fields):
groups = {name: [] for name in data}
if len(fields) > 1:
for i in range(len(fields)):
groups.add(fields[i])
groups.add(fields)
final_group = dict()
for script in data:
name = data[fields]
if not len(groups[name]) == 0:
groups[name].append(script[fields])
else:
groups[name] = [script[fields]]
return groups
def group_by_field(data, fields):
#print(fields)
groups = {field: [] for field in fields }
# print (groups)
for g in groups:
for d in data:
for key in d:
#print(d)
if g in d[g]:
groups[d[g]].append(g)
else:
pass
return groups
groups = group_by_field(scripts, ('bnf_name','postal_code'))
print(max_item)
print(groups)
groups = group_by_field(scripts, ('bnf_name',))
test_max_item = groups
assert test_max_item == max_item