Модуль 7.11 (Сортировка коллекций). Метод sort
и функция sorted
могут принимать необязательный именованный аргумент reverse
, значения которого относятся к логическому типу bool
, по умолчанию проставлено False
.
Что будет храниться в переменной
my_list
после выполнения этого кода?my_list = [432, 1210, 43, 89, -34] my_list = my_list.sort(reverse=True)
None
Напишите программу, которая отсортирует список subject_marks по возрастаю оценок. Затем распечатайте предметы и оценки, каждый пару на новой строчке через пробел
subject_marks = [('English', 88), ('Science', 90), ('Maths', 97), ('Physics', 93),('History', 82)] c = sorted(subject_marks, key=lambda x: int(x[1])) # сортируем список по второму элементу кортежей for i in c: # выводим кортежи, распаковав их print(*i)
Напишите программу, которая отсортирует список subject_marks по убыванию оценок.
Затем распечатайте предметы и оценки, каждый пару на новой строчке через пробел
subject_marks = [('English', 88), ('Science', 90), ('Maths', 97), ('Physics', 93), ('History', 82), ('French', 78), ('Art', 58), ('Chemistry', 76), ('Programming', 91)] c = sorted(subject_marks, key=lambda x: int(x[1]), reverse=True) # сортируем список по второму элементу кортежей for i in c: # циклом выводим кортежи, распаковав их print(*i)
subject_marks = [(‘English’, 88), (‘Science’, 90), (‘Maths’, 97),
(‘Physics’, 93), (‘History’, 82), (‘French’, 78),
(‘Art’, 58), (‘Chemistry’, 76), (‘Programming’, 91)]
c = sorted(subject_marks, key=lambda x: int(x[1]), reverse=True) #сортируем список по второму элементу кортежей
for i in c: #циклом выводим кортежи, распоковав их
print(*i)
subject_marks = [('English', 88), ('Science', 90), ('Maths', 88), ('Physics', 93), ('History', 78), ('French', 78), ('Art', 78), ('Chemistry', 88), ('Programming', 91)] a = sorted(subject_marks) # сортируем список b = sorted(a, key=lambda x: x[1], reverse=True) # затем сортируем список по убыванию по второму элементу кортежей for i in b: # выводим кортежи, распаковав их print(*i)
Напишите программу, которая отсортирует список models по цвету в лексикографическом порядке (по алфавиту)
Затем распечатайте элементы этого списка, каждый элемент на новой строке в формате:
Производитель: <make>, модель: <model>, цвет: <color>
models = [{'make': 'Nokia', 'model': 216, 'color': 'Black'}, {'make': 'Mi Max', 'model': 2, 'color': 'Gold'}, {'make': 'Samsung', 'model': 7, 'color': 'Blue'}, {'make': 'Apple', 'model': 10, 'color': 'Silver'}, {'make': 'Oppo', 'model': 9, 'color': 'Red'}, {'make': 'Huawei', 'model': 4, 'color': 'Grey'}, {'make': 'Honor', 'model': 3, 'color': 'Black'}] a = sorted(models, key=lambda x: x['color']) # сортируем словарь по значению ключей color в алфавитном порядке for i in a: # выводим информацию из каждого словаря в нужном формате print(f"Производитель: {i['make']}, модель: {i['model']}, цвет: {i['color']}")
Представьте, у нас есть список товаров и их стоимость, но мы хотим взглянуть на него в отсортированном виде. Вверху хотим видеть самые дорогие товары, внизу самые дешевые
Программа будет принимать строки, в которых сперва указывается название товара, а затем через двоеточие с пробелом его цена — целое положительное число.
Строка «конец» означает списка товаров и соответственно окончание ввода
Все товары имеют уникальные названия, цены не дублируются.
Ваша задача вывести список товаров по уменьшению цены
Представьте, что мы с вами сами можем решать кому и сколько статуэток Оскара уйдет (Лео бы тогда давно купался в этих статуэтках)
Ваша задача написать программу, которая находит информацию, кто из актеров получил наибольшее и наименьшее количество статуэток
a = {} # создаем пустой словарь n = int(input()) # получаем число - общее количество статуэток for i in range(n): # в словарь добавляем определенное количество людей string = input() # вводим человека if string not in a: # если его нет ещё в словаре, то добавляем его и указываем в качестве значения его количество статуэток, как 1 a[string] = 1 else: # если он уже есть, то к количеству статуэток добавляем 1 a[string] += 1 minimum = min(a.items(), key=lambda x: x[1]) # находим человека с минимальным количеством статуэток maximum = max(a.items(), key=lambda x: x[1]) # находим человека с максимальным количеством статуэток if len(a) >= 1: # если общее количество людей 1 и более, выводим человека максимального и минимального print(*maximum, sep=', ') print(*minimum, sep=', ')
Петя очень популярный парень, у него много друзей и он хочет сохранить их контакты в телефонной книге. Известно, что у каждого друга может быть один или больше номеров телефонов. Напишите программу, которая поможет Пете находить все номера определённого друга.
d={} # создаем словарь для добавления for i in range(int(input())): # добавляем определённое кол-во раз в словарь контакты a=input().split() # вводим имя и номер телефона if a[1] not in d: # Если этого имени нет ещё в словаре, то добавляем его в словарь d[a[1]]=[a[0]] elif a[1] in d: # иначе, если введенное имя уже есть, то старый номер заменяем на новый d[a[1]].append(a[0]) for i in range(int(input())): # циклом выводим несколько нужных контактов b=input() # вводим необходимое имя хозяина номера if b in d: # если мы такой номер вводили, то выводим его print(*d[b]) else: # если такого номера нет в словаре, выводим сообщение, о том что это неизвестный номер print('Неизвестный номер')
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Рейтинг таксистов
tax = {} # Создаем пустой словарь
while True: # Пока можно
s = input() # Вводим имя и рейтинг водителя, разделяя их по двоеточию и пробелу
if s == ‘конец’: # Если строка содержит конец…
break # …завершаем цикл ввода,
else: # иначе…
s = s.split(‘, ‘) # …вводим строку, разделяя её по запятой и пробелу
tax.setdefault(s[0], []).append(
int(s[1])) # Добавляем в словарь ключ и значение или обновляем значение при существующем ключе
for k, v in tax.items(): # Обходим словарь по каждой паре ключ значение
tax[k] = sum(v) / len(v) # и вычисляем среднее значение рейтинга, присваиваем его в существующий ключ
for key, value in sorted(tax.items(),
key=lambda item: (-item[1], item[0])): # Сортируем словарь по значению по убыванию, затем по имени и выводим на печать
print(key, value)
Дили Вили Били
names = [‘Дили’, ‘Вили’, ‘Били’]
d = {name: set() for name in names}
for s in iter(input, ‘конец’):
name, comment = s.split(‘: ‘)
d[name].add(comment)
d = {k: len(v) for k, v in d.items()}
for k, v in sorted(d.items(), key=lambda x: x[1], reverse=True):
print(f’Количество уникальных комментаторов у {k} — {v}’)
Дни рождения
n = int(input()) # количество одноклассников
bdays = {} # словарь для хранения дней рождений
for i in range(n):
name, day, month = input().split()
bdays.setdefault(month, []).append(name) # добавляем имя в список имени для данного месяца
m = int(input()) # количество вопросов
for i in range(m):
month = input().strip() # вопрос
if month in bdays:
names = sorted(bdays[month]) # сортируем имена
print(‘ ‘.join(names))
else:
print(‘Нет данных’)