Создание множеств

Тренажер по Python для пользователей с начальным уровнем подготовки.

Тренажер по Python

Множества в Python — это неупорядоченные коллекции уникальных элементов. Если тебе нужно хранить данные без дубликатов или быстро проверять наличие элемента — множества отлично подойдут. В этом тренажере ты научишься создавать множества разными способами: через фигурные скобки, функцию set(), а также из других коллекций — списков, строк, кортежей. Разберёшь типичные ошибки новичков и поймёшь, почему пустое множество нельзя создать через {}. Также познакомишься с frozenset — неизменяемым аналогом обычного множества. Задания построены от простого к сложному, так что начнём с базы и постепенно дойдём до хитрых случаев.

Список тем

Создание множества с элементами

id: 40028_task1

Создайте множество с тремя фруктами: яблоко, банан и вишня. Множества в Python записываются в фигурных скобках, элементы разделяются запятыми.

Заполните пропуски
fruits = input1S'apple', 'banana', 'cherry'input2S
print(fruits)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Тип пустых фигурных скобок

id: 40028_task2

Посмотрите на код и определите, что выведет функция type(). Это важный нюанс, который часто путает начинающих.

Выберите правильный вариант ответа
empty = {}
print(type(empty).__name__)
Сообщения
Проверить
Показать подсказку

Создание пустого множества

id: 40028_task3

Создайте пустое множество. Помните, что пустые фигурные скобки создают словарь, а не множество! Нужен другой способ.

Заполните пропуски
empty_set = input1S
print(type(empty_set).__name__)  # Должно вывести: set
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Исправьте ошибку с пустым множеством

id: 40028_task4

Программист хотел создать пустое множество и добавить в него элемент. Но что-то пошло не так — код выдаёт ошибку. Найдите и исправьте проблемную строку.

Найдите ошибку и исправьте
my_set = {}
my_set.add('hello')
print(my_set)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Уникальность элементов множества

id: 40028_task5

Множества автоматически удаляют дубликаты. Посмотрите на код и введите число — сколько элементов будет в итоговом множестве?

Что должно получиться?
numbers = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4}
print(len(numbers))
Сообщения
Проверить
Показать подсказку

Множество из строки

id: 40028_task6

Функция set() может принимать любой итерируемый объект, включая строки. Что выведет этот код?

Выберите правильный вариант ответа
letters = set('hello')
print(len(letters))
Сообщения
Проверить
Показать подсказку

Способы создания множеств

id: 40028_task7

Сопоставьте выражения Python слева с типом данных, который они создают, справа.

Сопоставьте строки в правой части с соответствующими строками в левой по порядковому номеру
Пустой словарь (dict)
Пустое множество (set)
Множество с элементами
Множество из списка
{1, 2, 3}
set()
{}
set([4, 5, 6])
Сообщения
Проверить
Показать подсказку

Что можно положить в множество?

id: 40028_task8

Элементы множества должны быть хешируемыми (неизменяемыми). Распределите объекты по категориям: что можно добавить в множество, а что вызовет ошибку.

Перетяните элементы в соответствующие блоки
Можно добавить в множество
Вызовет ошибку TypeError
42
'hello'
[1, 2, 3]
(1, 2, 3)
{'a': 1}
frozenset({1, 2})
{1, 2, 3}
Сообщения
Проверить
Показать подсказку

Ошибка с изменяемым элементом

id: 40028_task10

Программист пытается создать множество координат точек. Код вызывает ошибку. Найдите проблемную строку и исправьте её так, чтобы код заработал.

Найдите ошибку и исправьте
points = {
    [0, 0],
    [1, 1],
    [2, 2]
}
print(points)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Множество из кортежа

id: 40028_task11

Функция set() может создавать множество из любого итерируемого объекта. Что выведет этот код?

Выберите правильный вариант ответа
data = (10, 20, 30, 20, 10)
result = set(data)
print(len(result))
Сообщения
Проверить
Показать подсказку

Создание frozenset

id: 40028_task12

Создайте неизменяемое множество (frozenset) из списка цветов. Такое множество можно использовать как ключ словаря или элемент другого множества.

Заполните пропуски
colors_list = ['red', 'green', 'blue']
colors_frozen = input1S(colors_list)
print(type(colors_frozen).__name__)
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Соберите код: удаление дубликатов из списка

id: 40028_task13

Соберите код, который принимает список с повторами, преобразует его в множество для удаления дубликатов, затем обратно в список и выводит результат. Одна строка лишняя.

Перетяните в правильном порядке строки из одного блока в другой
unique_list = list(unique_set)
print(unique_list)
unique_set = set(numbers)
numbers = [1, 2, 2, 3, 3, 3]
unique_set = {numbers}
Сообщения
Проверить
Показать решение на 3 сек.
Показать подсказку

Множество из range

id: 40028_task14

Функция set() может создать множество из любого итератора, включая range(). Введите число — сколько элементов будет в множестве?

Что должно получиться?
nums = set(range(5))
print(len(nums))
Сообщения
Проверить
Показать подсказку

Порядок создания вложенных структур

id: 40028_task15

Расставьте строки в правильном порядке, чтобы создать словарь, где ключами являются frozenset. Такое возможно, потому что frozenset — хешируемый объект.

Расставьте строки в правильном порядке
print(permissions)
key1 = frozenset(['read', 'write'])
permissions = {key1: 'admin', key2: 'guest'}
key2 = frozenset(['read'])
Сообщения
Проверить
Показать подсказку
НайтиКурс.Ру