list

Функция list() создает объект списка в Python. Список — это упорядоченная изменяемая коллекция элементов.

Синтаксис

list([iterable])

Аргументы

  • iterable (необязательный):
    • Что означает: Итерируемый объект, который нужно преобразовать в список.
    • Возможные значения: Любой объект, поддерживающий итерацию (например, строки, кортежи, множества, диапазоны и т. д.).

Возвращаемое значение

Объект списка, содержащий элементы из переданного итерируемого объекта, или пустой список, если аргумент не указан.

Примеры использования

# Создание пустого списка
empty_list = list()
print(empty_list)  # []
# Преобразование строки в список символов
chars = list("Python")
print(chars)  # ['P', 'y', 't', 'h', 'o', 'n']
# Преобразование кортежа в список
numbers_tuple = (1, 2, 3)
numbers_list = list(numbers_tuple)
print(numbers_list)  # [1, 2, 3]
# Преобразование множества в список
unique_numbers = {4, 5, 6}
numbers_list = list(unique_numbers)
print(numbers_list)  # [4, 5, 6] (порядок может быть произвольным)
# Создание списка из диапазона
range_list = list(range(5))
print(range_list)  # [0, 1, 2, 3, 4]

Частые ошибки

  1. Попытка передать неитерируемый объект:

    non_iterable = 42
    print(list(non_iterable))  # Ошибка: TypeError
    

    Как исправить: Передавайте объект, поддерживающий итерацию, например, строку, кортеж или множество.

  2. Проблемы с порядком элементов при преобразовании множества:

    unique_numbers = {1, 2, 3}
    print(list(unique_numbers))  # Порядок может быть произвольным, например: [2, 1, 3]
    

    Как исправить: Если важен порядок, отсортируйте элементы с помощью sorted:

    sorted_list = list(sorted(unique_numbers))
    print(sorted_list)  # [1, 2, 3]
    

Часто задаваемые вопросы

  1. Что произойдет, если аргумент не указан? Вернется пустой список:

    print(list())  # []
    
  2. Можно ли создать список из итератора? Да, list() преобразует итератор в список:

    iterator = iter([1, 2, 3])
    print(list(iterator))  # [1, 2, 3]
    
  3. Сохраняет ли list() порядок элементов? Да, для итерируемых объектов, таких как строки, кортежи или диапазоны, порядок элементов сохраняется.

  4. Можно ли использовать list() для вложенных структур данных? Да, list() корректно обработает вложенные структуры, например:

    nested_tuple = ((1, 2), (3, 4))
    nested_list = list(nested_tuple)
    print(nested_list)  # [(1, 2), (3, 4)]
    
  5. Как создать копию списка с помощью list()? Передайте список в list() для создания копии:

    original_list = [1, 2, 3]
    copy_list = list(original_list)
    copy_list is original_list  # False