Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """PR15 Statistics - lambdas."""
- class Person:
- """Represent a person."""
- def __init__(self, first_name, last_name, email, gender, age):
- """Person class constructor."""
- self.first_name = first_name
- self.last_name = last_name
- self.email = email
- self.gender = gender
- self.age = age
- def __repr__(self):
- """Person class representative."""
- return f"{self.first_name},{self.last_name},{self.email},{self.gender},{self.age}"
- def get_oldest_person(person_list):
- """
- Return the person with the highest age.
- :param person_list: input list
- :return: Person object
- """
- return sorted(person_list, key=lambda person: person.age, reverse=True)[0]
- def get_person_with_shortest_name(person_list):
- """
- Return the person with the shortest name (first name + last name).
- :param person_list:
- :return:
- """
- return sorted(person_list, key=lambda person: len(person.first_name) + len(person.last_name))[0]
- def get_all_underage_people(person_list):
- """
- Return a list of all underage (under 18) people in the given list.
- :param person_list: input list of Person objects
- :return: list of all underage people
- """
- return [name for name in person_list if name.age < 18]
- def filter_list_by_gender(person_list, gender):
- """
- Filter the given list by the given gender.
- :param person_list: input list of Person objects
- :param gender: string 'Male' or 'Female'
- :return: a list of persons with the given gender
- """
- return [person for person in person_list if person.gender == gender]
- def get_people_with_government_emails(person_list):
- """
- Return a list of all people with an email ending with '.gov'.
- :param person_list: input list
- :return: a list of Person objects with an government email.
- """
- return [person for person in person_list if ".gov" in person.email[len(person.email) - 4:]]
- def sort_list_by_email_length(person_list):
- """
- Sort the given list by the length of a persons email in ascending order.
- :param person_list: input list
- :return: a sorted list of Person objects
- """
- return sorted(person_list, key=lambda person: len(person.email))
- def get_list_of_all_names_in_uppercase(person_list):
- """
- Return a list of the first names of all persons in the list, in uppercase.
- :param person_list: input list
- :return: a list of uppercase first names
- """
- return [person.first_name.upper() for person in person_list]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement