Python словари. Задачи для начинающих

Вместе с партнерами из telegram-канала Python задачки мы собрали для тебя несколько простых задач по Python. В этой статье разберем словари.

Задача 1

Даны два словаря: dictionary_1 = {'a': 300, 'b': 400} и dictionary_2 = {'c': 500, 'd': 600}. Объедините их в один при помощи встроенных функций языка Python.

Посмотреть решение

Для объединения двух словарей создадим третий словарь в виде копии первого. Для этого используем встроенную функцию copy(). Далее к уже созданному словарю мы присоединяем второй словарь. Для этого мы используем встроенную функцию update().

dictionary_1 = {'a': 100, 'b': 200}
dictionary_2 = {'x': 300, 'y': 200}
dictionary_3 = dictionary_1.copy()
dictionary_3.update(dictionary_2)
print(dictionary_3)

Результат:
{'a': 100, 'b': 200, 'x': 300, 'y': 200}

Задача 2

Дан словарь с числовыми значениями. Необходимо их все перемножить и вывести на экран.

Посмотреть решение

Для решения данной задачи создадим переменную result, в которой будем накапливать результаты умножения, а для начала инициируем ее значением 1. Затем при помощи цикла for получим все значения словаря через его ключи. После этого результат умножения из переменной result выведем на экран.

my_dictionary = {'data1': 375, 'data2': 567, 'data3': -37, 'data4': 21}
result = 1
for key in my_dictionary:    
    result = result * my_dictionary[key]

print(result)

Результат: -165209625

Задача 3

Создайте словарь, в котором ключами будут числа от 1 до 10, а значениями эти же числа, возведенные в куб.

Посмотреть решение

Для решения этой задачи воспользуемся циклом for, а для получения чисел в диапазоне от 1 до 10 будем использовать функцию range().

my_dict = {i : i ** 3 for i in range(1, 11)}
print(my_dict)

Результат:
{1: 1, 2: 8, 3: 27, 4: 64, 5: 125, 6: 216, 7: 343, 8: 512, 9: 729, 10: 1000}

Задача 4

Даны два списка одинаковой длины. Необходимо создать из них словарь таким образом, чтобы элементы первого списка были ключами, а элементы второго — соответственно значениями нашего словаря.

Посмотреть решение

Для решения задачи воспользуемся функцией zip, которая из двух списков создает один, состоящий из кортежей длиной в два элемента каждый. Первый элемент кортежа взят из первого списка, а второй, соответственно, из второго. Индексы обоих элементов кортежа совпадают. После передачи такого списка в функцию dict получается требуемый словарь.

keys = ['red', 'green', 'blue']
values = ['#FF0000','#008000', '#0000FF']
color_dictionary = dict(zip(keys, values))
print(color_dictionary)

Результат:
{'red': '#FF0000', 'green': '#008000', 'blue': '#0000FF'}

Задача 5

Создайте словарь из строки 'pythonist' следующим образом: в качестве ключей возьмите буквы строки, а значениями пусть будут числа, соответствующие количеству вхождений данной буквы в строку.

Посмотреть решение

Для решения данной задачи воспользуемся функцией count(), которая считает количество вхождений элемента в строку. Для генерации словаря воспользуемся синтаксисом представления словарей (dictionary comprehention).

str1 = 'pythonist'
my_dict = {i: str1.count(i) for i in str1}
print(my_dict)

Результат:
{'p': 1, 'y': 1, 't': 2, 'h': 1, 'o': 1, 'n': 1, 'i': 1, 's': 1}