SmartView · Python | Изучение Python
129 subscribers
373 photos
17 links
📖 Обучение языку программирования Python с самого начала: кратко, интересно и понятно!

📚 Мы стараемся преподавать самое важное в Python, чтобы вас не нагружать.

⚡️ Boost канала: https://t.me/boost/SV_Python

🍀 Желаем приятного изучения!
Download Telegram
🎯 Модуль 11, задание 11.24

Как получить список пар ключ: значение?
Anonymous Quiz
50%
list(d)
50%
list(d.items())
0%
d.to_list()
0%
tuple(d)
🎯 Модуль 11, задание 11.25

Как создать словарь из [('a', 1), ('b', 2)]?
Anonymous Quiz
50%
dict([('a', 1), ('b', 2)])
38%
{['a', 1], ['b', 2]}
0%
('a', 1) + ('b', 2)
13%
set([('a', 1), ('b', 2)])
🎯 Модуль 11, задание 11.26

Как создать словарь из keys = ['a', 'b'] и values = [1, 2]?
Anonymous Quiz
63%
dict(zip(keys, values))
25%
{keys: values}
13%
dict(keys, values)
0%
keys + values
🎯 Модуль 11, задание 11.30

Что вернет Counter(['a', 'b', 'a'])?
Anonymous Quiz
60%
{'a': 2, 'b': 1}
40%
['a', 'b']
0%
('a', 'b')
0%
{'a', 'b'}
Недельный перерыв в изучении Python!

Период: с 1 июля по 8 июля.

Обучение возобновится 8 июля с новыми темами и практическими заданиями.


Благодарим за понимание и продуктивную работу!

–>
@SV_Python
🔥7😁1👀1
Что такое множество?

Множество (set)
— это мощная структура данных в Python, которая хранит уникальные элементы в неупорядоченном виде.

Основные особенности:
my_set = {1, 2, 3, 2, 1}  # Автоматическое удаление дублей
print(my_set) # Выведет: {1, 2, 3}


Преимущества множеств:
- Молниеносная проверка наличия элемента (x in set)
- Автоматическое удаление повторений
- Поддержка математических операций (объединение, пересечение)

Ограничения:
- Нет доступа по индексу
- Нельзя хранить изменяемые объекты (списки, словари)
- Порядок элементов не гарантирован (до Python 3.7)

Пример использования:
# Удаление дубликатов из списка
names = ["Alice", "Bob", "Alice", "Charlie"]
unique_names = list(set(names)) # Преобразуем в множество и обратно
print(unique_names) # ['Charlie', 'Bob', 'Alice'] - порядок может меняться
👍6
Основные свойства и характеристики множеств


Главные характеристики:
1. Уникальность элементов
{1, 2, 2, 3}  # Станет {1, 2, 3}


2. Отсутствие индексации
s = {'a', 'b', 'c'}
# s[0] # Ошибка! Так нельзя


3. Высокая скорость операций
- Проверка наличия: O(1)
- Добавление/удаление: O(1)

4. Изменяемость
s = {1, 2}
s.add(3) # Теперь {1, 2, 3}
👍5
Создание множеств

1. Литералы фигурных скобок:
colors = {'red', 'green', 'blue'}


2. Конструктор set():
s1 = set()              # Пустое множество
s2 = set([1, 2, 3]) # Из списка
s3 = set("hello") # {'h', 'e', 'l', 'o'}


3. Генераторы множеств:
squares = {x**2 for x in range(5)}  # {0, 1, 4, 9, 16}


4. Из других коллекций:
words = ["hello", "world", "hello"]
unique_words = set(words) # {'world', 'hello'}



Важно:
empty_set = set()  # Правильно
not_a_set = {} # Это словарь!
👍5🔥1
Пустое множество VS пустой словарь

Как запомнить?
"Фигурные скобки ( {} ) создают словарь, для множества нужен set()"
👍6
Ограничения элементов: что можно хранить?

Допустимые типы:
- Числа (int, float)
- Строки (str)
- Кортежи (tuple)
- frozenset

Запрещенные типы:
- Списки (list)
- Словари (dict)
- Другие множества (set)

Пример ошибки:
invalid_set = {[1, 2]}  # TypeError: unhashable type: 'list'


Решение:
# Преобразуем списки в кортежи
valid_set = {tuple([1, 2]), tuple([3, 4])}
👍6
Добавление элементов: add() vs update()

Метод add():
numbers = {1, 2}
numbers.add(3) # {1, 2, 3}
numbers.add(2) # Ничего не изменится


Метод update():
numbers.update([4, 5])      # {1, 2, 3, 4, 5}
numbers.update({6, 7}) # Добавляет 6 и 7
numbers.update("abc") # Добавит 'a', 'b', 'c'
👍6
Удаление элементов: 3 способа


1. remove() - строгий метод:
s = {1, 2, 3}
s.remove(2) # {1, 3}
s.remove(4) # KeyError!



2. discard() - безопасный метод:
s.discard(3)     # {1}
s.discard(99) # Ничего не произойдет



3. pop() - удаление случайного элемента:
elem = s.pop()   # Удаляет и возвращает любой элемент
👍5
Очистка множества: clear()

s = {1, 2, 3}
s.clear() # Полностью очищает множество
print(s) # set()
👍5👏1
Проверка принадлежности: оператор in

fruits = {"apple", "banana"}
print("apple" in fruits) # True
print("orange" not in fruits) # True
👍6
Длина множества: len()

numbers = {1, 2, 3}
print(len(numbers)) # 3
👍6
Объединение множеств

Метод union():
a = {1, 2}; b = {2, 3}
c = a.union(b) # {1, 2, 3}


Оператор "|":
d = a | b  # Аналогично union()
👍6