Решение модуля 7.11 Инди-курс программирования на Python

Модуль 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('Неизвестный номер')

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

3 комментариев
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Кирилл
Кирилл
7 месяцев назад

Рейтинг таксистов
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)

liony
liony
8 месяцев назад

Дили Вили Били

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}’)

liony
liony
8 месяцев назад

Дни рождения

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(‘Нет данных’)

Последний раз редактировалось 8 месяцев назад liony ем
3
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x