Модуль 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) # выводим запрос в консоль с текстом
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы