forked from shaunwa/function-python-examples
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path03_09.py
More file actions
executable file
·51 lines (42 loc) · 1.26 KB
/
03_09.py
File metadata and controls
executable file
·51 lines (42 loc) · 1.26 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
from functools import reduce
employees = [{
'name': 'Jane',
'salary': 90000,
'job_title': 'developer'
}, {
'name': 'Bill',
'salary': 50000,
'job_title': 'writer'
}, {
'name': 'Kathy',
'salary': 120000,
'job_title': 'executive'
}, {
'name': 'Anna',
'salary': 100000,
'job_title': 'developer'
}, {
'name': 'Dennis',
'salary': 95000,
'job_title': 'developer'
}, {
'name': 'Albert',
'salary': 70000,
'job_title': 'marketing specialist'
}]
def is_developer(employee):
return employee['job_title'] == 'developer'
def is_not_developer(employee):
return employee['job_title'] != 'developer'
def get_salary(employee):
return employee['salary']
developer_salaries = [get_salary(x) for x in employees if is_developer(x)]
non_developer_salaries = [get_salary(x) for x in employees if is_not_developer(x)]
def get_sum(acc, x):
return acc + x
total_developer_salaries = reduce(get_sum, developer_salaries)
average_developer_salary = total_developer_salaries / len(developer_salaries)
total_non_developer_salaries = reduce(get_sum, non_developer_salaries)
average_non_developer_salary = total_non_developer_salaries / len(non_developer_salaries)
print(average_developer_salary)
print(average_non_developer_salary)