Решение модуля 6.6 Добрый, добрый Python

Модуль 6.6 Генераторы множеств и словарей.

Какие генераторы коллекций существуют в Python?


генератор словарей
генератор множеств
генератор целых чисел в виде арифметической прогрессии
генератор списков

Вводится строка со списком оценок, например:

2 неудовлетворительно удовлетворительно хорошо отлично

Первая цифра — это числовое значение первой оценки. Остальные оценки имеют возрастающие на 1 числа. С помощью генератора словарей необходимо сформировать словарь d, где ключами будут выступать числа, а значениями — слова.
Например:

d = {2: ‘неудовлетворительно’, 3: ‘удовлетворительно’, 4: ‘хорошо’, 5: ‘отлично’}

Вывести на экран значение сформированного словаря с ключом 4.

 

На автомойку в течение квартала заезжали машины. Их гос. номера фиксировались в журнале, следующим образом (пример):

Е220СК
А120МВ
В101АА
Е220СК
А120МВ

На основе такого списка через генератор множеств сформировать список уникальных машин. На экран вывести число уникальных машин.

P. S. Для считывания списка целиком в программе уже записаны начальные строчки.

import sys
# считывание списка из входного потока
lst_in = list(map(str.strip, sys.stdin.readlines()))
print(len(set([i.rstrip() for i in lst_in])))
# здесь продолжайте программу (используйте список lst_in)

Вводится текст в одну строчку со словами через пробел. С помощью генератора множеств сформировать множество из уникальных слов без учета регистра и длина которых не менее трех символов. Вывести на экран размер этого множества.

# С помощью input().lower().split() я получаю строку привожу ее к нижнему регистру и разбиваю на отдельные слова
# С помощью len(val) > 3 я проверяю длину слова и если оно меньше 3 символов я его не передаю для сохранения
print(len(set([x for x in input().lower().split() if len(x)>2])))

Вводится текст в одну строчку со словами через пробел. Используя генераторы множеств и словарей, сформировать словарь в формате:

{слово_1: количество_1, слово_2: количество_2, …, слово_N: количество_N}

То есть, ключами выступают уникальные слова (без учета регистра), а значениями — число их встречаемости в тексте. На экран вывести значение словаря для слова (союза) ‘и’. Если такого ключа нет, то вывести 0.

list_in = list(input().lower().split()) # Принимаю строку в формате списка и привожу все к нижнему регистру .lower()
set_in = set(list_in)                   # Преобразовываю в формат множества (set)
# Преобразовываю в dict вложенным циклом последним мы будет выбирать значения из set так как по индексу нельзя обратится к множеству.
# Далее будет за значения ключа брать значение полученные из множества с помощью list_in.count(val) получать сколько
# раз будет встречаться переданное значение.
dict_in = {val: list_in.count(val) for i in range(0, len(set_in)) for val in set_in}

print(dict_in.get('и', 0))              # Если ключа нет то возвращаем 0

Вводится список книг книжного магазина в формате:

<автор 1>:<название 1>

<автор N>:<название N>

Авторы с названиями могут повторяться. Необходимо, используя генераторы, сформировать словарь с именем d вида:

{‘автор 1’: {‘название 1’, ‘название 2’, …, ‘название M’}, …, ‘автор K’: {‘название 1’, ‘название 2’, …, ‘название S’}}

То есть, ключами выступают уникальные авторы, а значениями — множества с уникальными названиями книг соответствующего автора.

На экран ничего выводить не нужно, только сформировать словарь обязательно с именем d — он, далее будет проверяться в тестах!

P. S. Для считывания списка целиком в программе уже записаны начальные строчки.

import sys

# считывание списка из входного потока
lst_in = list(map(str.strip, sys.stdin.readlines()))
z = [x.split(":") for x in lst_in]                # привел к виду - ['автор',' произведение] 
d = {avtor[0]: {proiz[1].lstrip() for proiz in z if proiz[0] == avtor[0]} for avtor in z}  
# Когда находим автора начинаем перебирать список из ['автор',' произведение] и когда нулевые эл-ты совпадают, # # # #  записываем в список 1й эл-нт ( произведение) обрезая начальные пробелы

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

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

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x