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

Модуль 6.1 Введение в словари.

Отметьте все правильные определения словаря.

dict([[1, 'one'], [2, 'two'], [3, 'three']])
{}
dict()
dict(you='ты', we='мы', they='они', us='нам')
{"river": "река", 'road': 'Дорога', 'one': 1}

Отметьте все правильные указания ключей словаря d = {}:

d['dict'] = {'one': 1, 'two': 2}
d[True] = 'истина'
d[1] = 'one'
d["house"] = ['дом', 'жилище', 'хижина']
d[5.6] = 5.6

Вводятся данные в формате ключ=значение в одну строчку через пробел. Значениями здесь являются целые числа (см. пример ниже). Необходимо на их основе создать словарь d с помощью функции dict() и вывести его на экран командой:

print(*sorted(d.items()))

s = input().split()  # ввод данных 'one=1','two=2','three=3'
lst = [s[i].split('=') for i in range(len(s))] # разбивка данных .,через list comprehension [s[элемент].split('=') пробегаемся по длинне списка (всего 3 элемента)].Таким образом у нас сейчас данные получаются 'one' '1' и т.д.
d = dict(lst)        # делаем словарь
for key in d:        # цикл чтобы получить пару строка : число
    d[key] = int(d[key])
print(*sorted(d.items()))

На вход программы поступают данные в виде набора строк в формате: 

ключ1=значение1
ключ2=значение2

ключN=значениеN

Ключами здесь выступают целые числа (см. пример ниже). Необходимо их преобразовать в словарь d (без использования функции dict()) и вывести его на экран командой:

print(*sorted(d.items()))

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

import sys

# считывание списка из входного потока
lst_in = list(map(str.strip, sys.stdin.readlines()))

# здесь продолжайте программу (используйте список lst_in)
d = {}
for s in lst_in:
    row = s.split('=')
    d[int(row[0])] = row[1]

print(*sorted(d.items()))

Вводятся данные в формате ключ=значение в одну строчку через пробел. Необходимо на их основе создать словарь, затем проверить, существуют ли в нем ключи со значениями: ‘house’, ‘True’ и ‘5’ (все ключи — строки). Если все они существуют, то вывести на экран ДА, иначе — НЕТ.

dict_1 = dict([value.split('=') for value in input().split()])# Сохраняем введенную информацию разделяя по пробелам
# так же каждый полученный элемент после ввода разделяем по знаку =

count = 0
for key, value in dict_1.items(): # Перебираю словарь извлекаю ключи и значения
    print ()
    if key == 'house' or key == 'True' or key == '5': # Проверю условиe задания
        count += 1


# Проверяю значения flag и вывожу советующее сообщение в игру
# print("ДА" if 'house' in dict_1 and 'True' in dict_1 and '5' in dict_1 else "НЕТ") # Отличный вариант

if count == 3:
    print('ДА')
else:
    print('НЕТ')

Вводятся данные в формате ключ=значение в одну строчку через пробел. Необходимо на их основе создать словарь d, затем удалить из этого словаря ключи ‘False’ и ‘3’, если они существуют. Ключами и значениями словаря являются строки. Вывести полученный словарь на экран командой:

print(*sorted(d.items()))

dict_1 = dict([value.split('=') for value in input().split()]) # Сохраняем введенную информацию разделяя по пробелам
# так же каждый полученный элемент после ввода разделяем по знаку =

if 'False' in dict_1:     # Проверяю наличие значение в словаре
    del dict_1['False']   # Удаляю их по ключу
if '3' in dict_1:
    del dict_1['3']

print(*sorted(dict_1.items())) # Вывожу результат

 Вводятся номера телефонов в одну строчку через пробел с разными кодами стран: +7, +6, +2, +4 и т.д. Необходимо составить словарь d, где ключи — это коды +7, +6, +2 и т.п., а значения — список номеров (следующих в том же порядке, что и во входной строке) с соответствующими кодами. Полученный словарь вывести командой:

print(*sorted(d.items()))

lst = input().split() # создаём список номеров

d_keys = dict([[number[:2], 0] for number in lst]) # создаём словарь, состоящий из кодов операторов в качестве клюей и "пустых значений". (Поскольку нам от этого словаря нужны только ключи, лучше бы мы использовали set(), но, пока мы не знаем, что такое set(), такой костыль)
d = dict([[key, [number for number in lst if key in number]] for key in d_keys]) # по найденым ключам формируем требуемый словарь.

print(*sorted(d.items()))

 Вводятся номера телефонов в формате:

номер_1 имя_1
номер_2 имя_2

номер_N имя_N

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

print(*sorted(d.items()))

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

import sys

lst_in = list(map(str.strip, sys.stdin.readlines()))
d = {}                        # Создаю новый массив
for x in lst_in:
    key = x.split(" ")[1]     # Ключ второе значение в списке (в результате split(" ")) Имя
    value = x.split(" ")[0]   # Значение второе значение в списке (в результате split(" ")) Телефон
    if key not in d.keys():   # Ели такого имени (ключа) нет тогда создаем, значение список list
        d[key] = [value]
    else:
        d[key] += [value]     # Если есть имя (ключ) добавляем в значение list еще один номер
print(*sorted(d.items()))

Пользователь вводит в цикле целые положительные числа, пока не введет число 0. Для каждого числа вычисляется квадратный корень (с точностью до сотых) и значение выводится на экран (в столбик). С помощью словаря выполните кэширование данных так, чтобы при повторном вводе того же самого числа результат не вычислялся, а бралось ранее вычисленное значение из словаря. При этом на экране должно выводиться:

значение из кэша: <число>

import math  # для вычисления корня импорт math.sqrt

slov = {}                 # создаем пустой словарь
while True:
    num = int(input())    # циклим ввод
    if num == 0:          # если число 0 = выключаем цикл
        break
    if num not in slov:   # если такого числа нет
        slov[num] = round(math.sqrt(num), 2)   # вычисляем корень и заносим его в словарь
        print(slov[num])  # выводим
    else:
        print("значение из кэша:", slov[num])  # если число уже было

Тестовый веб-сервер возвращает HTML-страницы по URL-адресам (строкам). На вход программы поступают различные URL-адреса. Если адрес пришел впервые, то на экране отобразить строку (без кавычек):

«HTML-страница для адреса <URL-адрес>»

Если адрес приходит повторно, то следует взять строку «HTML-страница для адреса <URL-адрес>» из словаря и вывести на экран сообщение (без кавычек):

«Взято из кэша: HTML-страница для адреса <URL-адрес>»

Сообщения выводить каждое с новой строки.

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

import sys
# считывание списка из входного потока
lst_in = list(map(str.strip, sys.stdin.readlines()))  # лист с запросами

URL_adress = []             # созданный картеж для записи уже приходивших запросов
URL_word = {'One': "HTML-страница для адреса", 'Duble': "Взято из кэша: HTML-страница для адреса"}

for URL in lst_in:          # берем текст запроса
        count = URL_adress.count(URL)     # Проверяем приходил ли запрос ранее
        if count == 0:      # Проверяем результат поиска
            URL_adress.append(URL)        # записываем запрос в картеж
            print(URL_word['One'], URL)   # выводим запрос в консоль с текстом
        if count == 1:      # Проверяем результат поиска
            print(URL_word['Duble'], URL)  # выводим запрос в консоль с текстом

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

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

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