Unit 5 · Lesson 4
Functions + Collections
Combine functions with lists and dicts.
Pass lists/dicts as parameters
Return collections
Build utility toolkit
Design composable functions
Functions That Process Collections
def average(numbers):
return sum(numbers) / len(numbers)
print(average([90,85,92])) # 89.0
Returning New Collections
def filter_passing(grades, threshold=70):
return [g for g in grades if g >= threshold]
Build a toolkit! Small, focused functions that each do one thing well.
Practice Time
Challenges
Challenge 1: Stats Toolkit
Guided
Write mean() and median().
Instructions:
mean(nums) returns average. median(nums) returns middle value (avg of two middles for even length).Hint: mean: sum/len. median: sort copy, pick middle or average two middles.
Challenge 2: Filter Function
Guided
Filter students by minimum grade.
Instructions:
filter_passing(students, min_grade) returns list of names with grade >= min_grade.Hint: Loop, if s["grade"] >= min_grade, append s["name"].
Challenge 3: Merge Contacts
Solo
Merge two dicts, second overrides.
Instructions:
merge(dict1, dict2) returns NEW dict with all keys. dict2 wins on conflicts.Hint: Start with empty dict, add all from dict1, then all from dict2.
Challenge 4: Mini Gradebook
Stretch
Build gradebook management functions.
Instructions: Write
create_gradebook(), add_student(gb,name), add_grade(gb,name,grade), get_average(gb,name).Hint: create returns {}. add_student: gb[name]=[]. add_grade: gb[name].append(grade). get_average: sum/len.