Показываю разборы с ответами и решениями урока 3.2 (Словари) для курса «Программирование на Python».
Предыдущий модуль 3.1 следующий модуль 3.4
Напишите функцию update_dictionary(d, key, value), которая принимает на вход словарь d и два числа: key и value.
Если ключ key есть в словаре d, то добавьте значение value в список, который хранится по этому ключу.
Если ключа key нет в словаре, то нужно добавить значение в список по ключу 2 * key. Если и ключа 2 * key нет, то нужно добавить ключ 2 * key в словарь и сопоставить ему список из переданного элемента [value].Требуется реализовать только эту функцию, кода вне её не должно быть.
Функция не должна вызывать внутри себя функции input и print.
# Определение функции update_dictionary с параметрами d (словарь), key (ключ) и value (значение).
def update_dictionary(d, key, value):
# Проверяем, существует ли ключ key в словаре d.
if key in d:
# Если ключ существует, добавляем значение value в список, связанный с этим ключом.
d[key].append(value)
else:
# Если ключ key отсутствует в словаре d, вычисляем новый ключ, равный удвоенному значению key.
new_key = 2 * key
# Проверяем, существует ли новый ключ new_key в словаре d.
if new_key in d:
# Если новый ключ существует, добавляем значение value в связанный с ним список.
d[new_key].append(value)
else:
# Если новый ключ new_key также отсутствует в словаре d, создаем новую запись в словаре.
# Новый ключ new_key связываем со списком, содержащим значение value.
d[new_key] = [value] Когда Антон прочитал «Войну и мир», ему стало интересно, сколько слов и в каком количестве используется в этой книге.
Помогите Антону написать упрощённую версию такой программы, которая сможет подсчитать слова, разделённые пробелом и вывести получившуюся статистику.
Программа должна считывать одну строку со стандартного ввода и выводить для каждого уникального слова в этой строке число его повторений (без учёта регистра) в формате «слово количество» (см. пример вывода).
Порядок вывода слов может быть произвольным, каждое уникальное слово должно выводиться только один раз.
# Функция для подсчета слов и создания статистики
def word_count(sentence):
# Преобразуем всю строку в нижний регистр для учета регистра
sentence = sentence.lower()
# Разбиваем строку на слова, используя пробел в качестве разделителя
words = sentence.split()
# Создаем пустой словарь для хранения статистики
word_counts = {}
# Проходим по каждому слову в списке
for word in words:
# Если слово уже встречалось, увеличиваем счетчик
if word in word_counts:
word_counts[word] += 1
else:
# Если слово встречается первый раз, создаем запись в словаре
word_counts[word] = 1
# Возвращаем словарь с результатами
return word_counts
# Получаем строку
input_string = input()
# Получаем статистику и выводим результат
result = word_count(input_string)
for word, count in result.items():
print(word, count)
Напишите программу, которая считывает строку с числом nn, которое задаёт количество чисел, которые нужно считать. Далее считывает n строк с числами xi, по одному числу в каждой строке. Итого будет n+1 строк.
При считывании числа xi программа должна на отдельной строке вывести значение f(xi). Функция
f(x)уже реализована и доступна для вызова.Функция вычисляется достаточно долго и зависит только от переданного аргумента xx. Для того, чтобы уложиться в ограничение по времени, нужно избежать повторного вычисления значений.
# Словарь для кэширования результатов
cache = {}
# Функция для вычисления f(x) с использованием кэширования
def calculate_f(x):
# Если результат уже есть в кэше, возвращаем его
if x in cache:
return cache[x]
# Иначе вычисляем значение f(x)
result = f(x)
# Сохраняем результат в кэше
cache[x] = result
return result
# Считываем количество чисел n
n = int(input())
# Считываем и обрабатываем каждое число xi
for _ in range(n):
xi = int(input())
# Вычисляем f(xi) с использованием кэширования и выводим результат
result = calculate_f(xi)
print(result)
Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы
Ну а где 3-я задача?