Когда мы пишем код на Python, часто возникает вопрос: чем отличается оператор is от оператора ==? Хотя на первый взгляд они могут показаться схожими, на самом деле выполняют разные функции.
Оператор ==: проверка значений
Оператор == используется для сравнения значений двух объектов. Если значения объектов одинаковы, оператор возвращает True. При этом тип и место в памяти объектов могут отличаться.
a = [1, 2, 3]
b = [1, 2, 3]
print(a == b) # True — значения списков одинаковы
Здесь a и b — два разных объекта, хранящихся в разных местах памяти, но их значения идентичны, поэтому == возвращает True.
Оператор is: проверка идентичности
Оператор is проверяет, указывают ли обе переменные на один и тот же объект в памяти. Он возвращает True, если объекты занимают одно и то же место в памяти (являются тем же самым объектом).
a = [1, 2, 3]
b = [1, 2, 3]
print(a is b) # False — это два разных объекта
Хотя a == b вернуло True из-за одинаковых значений, a is b вернёт False, потому что это два разных объекта, хранящихся в разных местах памяти.
Используйте ==, когда вам нужно сравнить значения объектов. Используйте is, когда важно проверить, что обе переменные ссылаются на один и тот же объект в памяти.
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻2❤1
List comprehensions — это элегантный и компактный способ создания списков на основе других коллекций, таких как списки, множества или словари. Они позволяют сократить и упростить код, особенно когда вам нужно создать новый список, применяя к каждому элементу какое-то преобразование или фильтрацию.
Стандартный пример List Comprehension
Представим, что у нас есть список чисел, и мы хотим получить их квадраты:
numbers = [1, 2, 3, 4, 5]
squares = [x ** 2 for x in numbers]
print(squares) # Вывод: [1, 4, 9, 16, 25]
Здесь x ** 2 применяется к каждому элементу numbers, и результат добавляется в новый список squares.
List Comprehensions для словарей
Та же концепция может быть применена для создания словарей. Например, создадим словарь, где ключ — это число, а значение — его квадрат:
squares_dict = {x: x ** 2 for x in range(1, 6)}
print(squares_dict) # Вывод: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
List Comprehensions для множеств
Аналогично можно создавать множества.
Например, возьмем уникальные квадраты чисел из списка:
unique_squares = {x ** 2 for x in numbers}
print(unique_squares) # Вывод: {1, 4, 9, 16, 25}
Чем удобен List Comprehension?
#PyLearn
Please open Telegram to view this post
VIEW IN TELEGRAM
👨💻3
Что выведет данный код?
Anonymous Quiz
13%
[1, 2, 3, 4, 5]
38%
Код вызовет синтаксическую ошибку
38%
[2, 2, 6, 8, 10]
13%
[2, 4, 6, 8, 10]
👨💻2
