Перейти к содержимому
шпаргалка.
Esc
навигацияоткрыть⌘Jпредпросмотр
На этой странице

Списки, кортежи, словари и множества

Все темы Python Developer

В чем отличие между кортежами и списками?

Основные различия между кортежами и списками:

Кортежи (tuples):

  • Кортежи - неизменяемые упорядоченные коллекции объектов.

  • Элементы кортежа не могут быть изменены после создания.

  • Создаются с использованием круглых скобок: ().

  • Используются, когда необходима коллекция, которая не должна изменяться.

Списки (lists):

  • Списки - изменяемые упорядоченные коллекции объектов.

  • Элементы списка могут быть изменены, добавлены или удалены после создания.

  • Создаются с использованием квадратных скобок: [].

  • Используются, когда необходима коллекция, которая может быть изменена или модифицирована.


Какие функции предоставляются для работы со списками в Python?

Выделяют основные функции для работы со списками:

  1. append(): Добавляет элемент в конец списка.

  2. extend(): Расширяет список, добавляя элементы из другого списка.

  3. insert(): Вставляет элемент на указанную позицию.

  4. remove(): Удаляет первое вхождение элемента с указанным значением.

  5. pop(): Удаляет элемент с указанным индексом и возвращает его значение.

  6. clear(): Удаляет все элементы из списка.

  7. index(): Возвращает индекс первого вхождения элемента с указанным значением.

  8. count(): Возвращает количество вхождений элемента с указанным значением.

  9. sort(): Сортирует элементы списка.

  10. reverse(): Изменяет порядок элементов на обратный.

  11. copy(): Создает копию списка.


Какая операция выполняется быстрее: проверка наличия элемента в списке или в множестве?

В множестве проверка наличия элемента выполняется быстрее, чем в списке. В множестве элементы хранятся в хэш-таблице, что обеспечивает константное время доступа к элементам в среднем случае. В списке же для проверки наличия элемента нужно пройти по всему списку, что требует времени пропорционально размеру списка, то есть O(n), где n - количество элементов в списке.


Какие объекты могут выступать в качестве ключей в словаре и почему именно они выбираются в качестве ключей?

Ключ словаря должен быть хешируемым: его хеш не меняется за время жизни, а равные ключи имеют равные хеши. Числа и строки подходят; кортеж подходит, только если хешируемы все его элементы. Неизменяемость сама по себе не гарантирует хешируемость. Экземпляры пользовательских классов по умолчанию хешируемы по идентичности.


Как происходит в памяти компьютера инициализация списков, кортежей, что занимает меньше памяти?

При инициализации списков и кортежей в памяти компьютера происходит выделение памяти для хранения элементов данных. Вот основные различия между списками и кортежами в плане памяти:

  1. Списки (list):

    • Списки являются изменяемыми структурами данных, поэтому они требуют дополнительной памяти для хранения информации о размере списка, его емкости (capacity), а также ссылок на элементы.

    • В списке элементы могут быть добавлены, удалены или изменены, поэтому список должен быть организован таким образом, чтобы его можно было динамически изменять.

    • Это делает списки менее эффективными с точки зрения использования памяти, особенно для больших списков.

  2. Кортежи (tuple):

    • Кортежи являются неизменяемыми структурами данных, поэтому они требуют меньше памяти, чем списки.

    • Кортеж хранит свой размер и ссылки на элементы, но ему не нужен резерв ёмкости для последующего добавления элементов.

    • Это делает кортежи более компактными и эффективными с точки зрения использования памяти, особенно если требуется хранить данные, которые не будут изменяться.


Где быстрее искать значение по ключу - в словаре или dicts в Python?

Словарь в Python и dict обозначают один встроенный тип. Отдельного встроенного типа dicts нет. Поиск по ключу в dict в среднем занимает O(1), а в худшем случае O(n). Если в вопросе подразумевается сторонняя обёртка, сначала нужно уточнить её название и реализацию.

Эта страница была полезной?