Sobes.tech
Назад к вопросам
Junior — Middle
75

Как различаются по работе и использованию коллекции типа set и списка list в Python?

Ответ от нейросети

sobes.tech AI

Основные различия между коллекциями set и list в Python:

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

    • set хранит только уникальные элементы, дубликаты автоматически удаляются.
    • list может содержать повторяющиеся элементы.
  • Порядок элементов:

    • В list сохраняется порядок добавления элементов.
    • В set порядок не гарантируется (начиная с Python 3.7 порядок вставки сохраняется, но не стоит на него полагаться).
  • Доступ по индексу:

    • В list можно обращаться к элементам по индексу, например my_list[0].
    • В set нет индексов, элементы перебираются в произвольном порядке.
  • Производительность:

    • Проверка наличия элемента в set происходит быстрее (O(1)) благодаря хэшированию.
    • В list проверка занимает O(n).

Пример:

my_list = [1, 2, 2, 3]
my_set = {1, 2, 2, 3}

print(my_list)  # [1, 2, 2, 3]
print(my_set)   # {1, 2, 3}

print(2 in my_list)  # True
print(2 in my_set)   # True

print(my_list[1])    # 2
# print(my_set[1])   # Ошибка, нельзя индексировать set