Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Как найти длину списка в Python: инструкция

Команда Timeweb Cloud
Команда Timeweb Cloud
Наши инженеры, технические писатели, редакторы и маркетологи
18 ноября 2022 г.
9979
3 минуты чтения
Средний рейтинг статьи: 5

Списки в Python используются практически повсеместно. В этом материале мы рассмотрим 4 способа как найти длину списка Python: с помощью встроенных функций, рекурсии и цикла. Длина списка чаще всего используется для перемещения по списку и выполнения с ним различных операций.

Метод len()

len() — встроенный метод Python для нахождения длины списка. На вход метод принимает один параметр: сам список. В качестве результата len() возвращает целочисленное значение — длину списка. Также этот метод работает и с другими итеративными объектами, например со строками.

Применение:

Country_list = ["The United States of America", "The Russian Federation", "France", "Germany"]
count = len(Country_list)

print("There are", count, "countries")

Вывод:

There are 4 countries

Поиск длины списка с помощью цикла

Длину списка можно узнать с помощью цикла for. Для этого необходимо пройти по всему списку, увеличивая счетчик на 1 за каждую итерацию. Определим для этого отдельную функцию:

def list_length(list):
   counter = 0
   for i in list:
       counter=counter+1
   return counter

Country_list = ["The United States of America", "The Russian Federation", "France", "Germany","Japan"]
count = list_length(Country_list)

print("There are", count, "countries")

Вывод:

There are 5 countries

Поиск длины списка с помощью рекурсии

Задачу поиска длины списка можно решить с помощью рекурсии. Вот код:

def list_length_recursive(list):
   if not list:
       return 0
   return 1 + list_length_recursive(list[1:])

Country_list = ["The United States of America", "The Russian Federation", "France", "Germany","Japan","Poland"]
count = list_length_recursive(Country_list)

print("There are", count, "countries")

Вывод:

There are 6 countries

Как это работает. На вход в функцию list_length_recursive() поступает список. Если он не содержит элементов, то возвращает 0 — длина пустого списка равна нулю. Если в нём есть элементы, то он вызывает рекурсивную функцию с аргументов list[1:] — срезом исходного списка с 1 элемента, т.е. списком без элемента на 0 индексе. Результат работы этой функции прибавляется к 1. За каждую рекурсию result  увеличивается на единицу, а список уменьшается на 1 элемент.

Метод length_hint()

Метод length_hint() относится к модулю operator. В модуль operator включены функции, аналогичные внутренним операторам Python: сложению, вычитанию, сравнению и т.п. Метод length_hint() возвращает длину итеративных объектов: строк, кортежей, словарей и списков. Работает length_hint() аналогично методу len():

from operator import length_hint

Country_list = ["The United States of America", "The Russian Federation", "France", "Germany", "Japan", "Poland", "Sweden"]
count = length_hint(Country_list)

print("There are", count, "countries")

Вывод:

There are 7 countries

Для работы с length_hint() его необходимо импортировать.

Заключение

В рамках этого материала мы рассмотрели 4 способа нахождения длины списка в Python. Наиболее оптимальным методом при прочих равных является len(). Сложность его работы равна O(1) и применение остальных методов оправдано для реализации собственных классов наподобие list. Если вы хотите изучить Python глубже, то читайте другие наши публикации на тему работы с Python, а также арендуйте VDS и VPS у Timeweb Cloud для реализации своих проектов и экспериментов с этим языком. 

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону