Перевірте довжину списку в Python за 3 простих кроки

У цій статті ми побачимо, як перевірити довжину списку за допомогою кількох простих кроків і проаналізуємо, який із них кращий.

Що таке список Python?

Список — це колекція масивів у Python, яка здатна зберігати в ньому кілька типів даних. Він може зберігати ціле число, число з плаваючою точкою, рядок, логічний чи навіть список у списку.

int_list = [1, 2, 3, 4, 5]

print(int_list) # output -> [1, 2, 3, 4, 5]

float_list = [1.1, 2.2, 3.3, 4.4, 5.5]

print(float_list) # output -> [1.1, 2.2, 3.3, 4.4, 5.5]

string_list = ['Geekflare', 'Cloudflare', 'Amazon']

print(string_list) # output -> ['Geekflare', 'Cloudflare', 'Amazon']

boolean_list = [True, False]

print(boolean_list) # output -> [True, False]

nested_list = [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

print(nested_list) # [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

different_datatype_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(different_datatype_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

Списки Python можна створювати за допомогою квадратної дужки або функції конструктора списків.

square_bracket_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(square_bracket_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

constructor_list = list((1, 1.1, 'techukraine.net', True, [1, 1.1, 'Geekflare', True]))

print(constructor_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

Наведений вище square_bracket_list – це список, створений за допомогою квадратних дужок ([]), constructor_list — це список, створений за допомогою конструктора списку. Обидва створюють лише вихід списку.

  Змішуйте музику з вашого локального диска або SoundCloud [Web]

Список може бути змінним, допускати дублікати в ньому та бути доступним за допомогою індексу.

Методи визначення довжини списку

  • вбудована функція len().
  • метод length_hint від оператора
  • спеціальна функція та лічильник

Спосіб 1: вбудована функція len().

Len() — це вбудована функція Python, яка використовується для визначення довжини списку, а також для інших ітерацій, таких як Set, Tuples, Dictionary.

Приклад фрагмента

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = len(languages)

print('Length of the Language List is: ',languages_length)

Вихід

Length of the Language List is:  5

Я сподіваюся, що у вас встановлено Python, якщо ні, ви можете скористатися онлайн-компілятором Python, щоб відпрацювати код.

Спосіб 2: метод length_hint від оператора

length_hint використовується для повернення довжини ітерованого об’єкта (наприклад, List, Set, Tuples, Dictionary). Він доступний у модулі оператора python. Не доступний, як інші вбудовані оператори.

  Керуйте медіа у Firefox за допомогою мультимедійних клавіш на клавіатурі

Приклад фрагмента

import operator

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = operator.length_hint(languages)

print('Length of the Language List using Operator is: ',languages_length)

Вихід

Length of the Language List using Operator is:  5

Спосіб 3: Спеціальна функція та лічильник

У цьому методі для визначення довжини списку ми будемо використовувати традиційний метод за допомогою циклу for і лічильника.

Для цього ми напишемо функцію на python. який приймає список або інший ітерований елемент як аргумент і повертає довжину ітерованого.

Фрагмент спеціальної функції

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

Приклад фрагмента

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = iterable_count(languages)

print('Length of the Language List using Custom function is: ',languages_length)

Вихід

Length of the Language List using Custom function is:  5

Аналізуючи ці 3 методи

Аналіз продуктивності для великого списку

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 9999999))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

Вихід

3.957189619541168e-06 Length of the Integer List using len() is:  9999998
3.0621886253356934e-06 Length of the Integer List using length_hint is:  9999998
0.4059128537774086 Length of the Integer List using Custom function is:  9999998

Як ми бачимо, length_hint працює швидше (3.0621886253356934e-06), коли дані містять мільйони. Це тому, що підказки щодо довжини використовуються середою виконання CPython. Де це називається обгорткою пітона.

  Як використовувати руку для панорамування Microsoft Office замість смуги прокрутки

Аналіз продуктивності для невеликого списку

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 100))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

Вихід

7.813796401023865e-07 Length of the Integer List using len() is:  99
1.1278316378593445e-06 Length of the Integer List using length_hint is:  99
3.462657332420349e-06 Length of the Integer List using Custom function is:  99

Як ми бачимо, len() працює швидше (7.813796401023865e-07), коли дані містять тисячі або менше.

В обох випадках наша спеціальна функція з лічильником займає більше часу, ніж обидва методи.

Висновок

У цій статті ми розглянемо різні способи перевірки довжини списку та те, як вони швидко перевіряють довжину списку.