self.username = username
self.last_name = last_name
self.apples = apples
children_list = [
Children('Вася', 'Пупкин', 5),
Children('Петя', 'Пяточкин', 2),
Children('Вася', 'Пупкин', 2),
Children('Вася', 'Пяточкин', 1)
]
# Вася Пупкин = 7
# Петя Пяточкин = 2
# Вася Пяточкин = 1
Есть какой-нибудь алгоритм сорттировки с провркой на условие, подходящий для этой задачи?
Чтобы на выходе получить то что закоменчено.
SQL конечно хорошо но не подойдет
children_list.sort(key=lambda child: child.apples, reverse=True)
Можно воспользоваться словарем для суммирования яблок: class Children(object): def __init__(self, username, last_name, apples): self.username = username self.last_name = last_name self.apples = apples def get_key(self): return f"{self.username} {self.last_name}" children_list = [ Children('Вася', 'Пупкин', 5), Children('Петя', 'Пяточкин', 2), Children('Вася', 'Пупкин', 2), Children('Вася', 'Пяточкин', 1) ] children_dict = {} for child in children_list: children_dict[child.get_key()] = children_dict.get(child.get_key(), 0) + child.apples print(children_dict) # {'Вася Пупкин': 7, 'Петя Пяточкин': 2, 'Вася Пяточкин': 1}
Обсуждают сегодня