Список, який є невід’ємною частиною програмування на Python, має вивчатися всіма користувачами Python, а знання його корисності та операцій є важливим і завжди плюсом.
У списках виконується багато операцій, але в цій статті ми обговоримо довжину списку. Довжина списку означає кількість елементів, які він містить. Ми розглянемо 8 різних методів визначення довжини списку Python .
приклад:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Знайти довжину списку в Python
Нижче наведено методи, які ми розглянемо в цій статті.
- Використання тільки() функція
- Використання наївного методу
- Використання length_hint()
- Використання сума() метод
- Використовуючи a розуміння списку
- Використання рекурсія
- Використання перелічувати функція
- Використання Колекції Модуль
1. Знайдіть довжину списку за допомогою функції len().
Python тільки() функція є вбудованою функцією в Python. Його можна використовувати, щоб знайти довжину об’єкта, передавши об’єкт у круглі дужки функції len.
Python3
перетворити рядок на int
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Вихід:
The length of list is: 3>
Часова складність: O(n), де n - довжина списку
Допоміжний простір: О(1)
2. Знайти довжину списку за допомогою простого методу
У цьому методі просто виконується цикл і збільшується лічильник до останнього елемента списку, щоб дізнатися його кількість. Це найосновніша стратегія, яку можна застосувати за відсутності інших існуючих методів.
Python3
# Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list using loop> # Initializing counter> counter> => 0> for> i> in> test_list:> > # incrementing counter> > counter> => counter> +> 1> # Printing length of list> print> (> 'Length of list using naive method is : '> +> str> (counter))> |
>
>
Вихід:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Часова складність: O(n)
Допоміжний простір: О(1)
3. Знайдіть довжину списку за допомогою методу length_hint().
Цей метод є менш відомим для визначення довжини списку. Цей конкретний метод визначено в класі операторів, і він також може сказати ні. елементів, присутніх у списку. Тут ми знаходимо довжину списку за допомогою len() і length_hint()
Python3
from> operator> import> length_hint> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list using len()> list_len> => len> (test_list)> # Finding length of list using length_hint()> list_len_hint> => length_hint(test_list)> # Printing length of list> print> (> 'Length of list using len() is : '> +> str> (list_len))> print> (> 'Length of list using length_hint() is : '> +> str> (list_len_hint))> |
>
>
Вихід:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Знайдіть довжину списку за допомогою функції sum().
Використовуйте ітерацію всередині суми та з кожною ітерацією додайте один, і в кінці ітерації ми отримаємо загальну довжину списку.
Python3
# Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list> # using sum()> list_len> => sum> (> 1> for> i> in> test_list)> # Printing length of list> print> (> 'Length of list using len() is : '> +> str> (list_len))> print> (> 'Length of list using length_hint() is : '> +> str> (list_len))> |
>
>
Вихід:
масиви в java
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Знайдіть довжину списку за допомогою розуміння списку
Ініціалізувати список викликів список_тестів з деякими значеннями, а потім ініціалізуйте змінну з назвою length до 0. Використовуйте розуміння списку, щоб створити послідовність одиниць для кожного елемента в test_list.
Це створить список з таких же довжини, як test_list. Тепер скористайтеся функцією sum(), щоб підсумувати всі в списку, створеному розуміння списку . Призначте суму змінній довжини. Вивести змінну довжини.
Python3
# Define the list to be used for the demonstration> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Calculate the length of the list using a list comprehension and the sum function> # The list comprehension generates a sequence of ones for each element in the list> # The sum function then sums all the ones to give the length of the list> length> => sum> (> 1> for> _> in> test_list)> # Print the length of the list> print> (> 'Length of list using list comprehension is:'> , length)> |
>
>Вихід
Length of list using list comprehension is: 5>
Часова складність: Розуміння списку створює новий список довжиною, що дорівнює довжині test_list. Потім функція sum() повторює цей список, щоб обчислити суму. Таким чином, часова складність цього алгоритму дорівнює O(N), де N — довжина test_list.
Допоміжний простір: Алгоритм створює новий список одиниць довжиною, що дорівнює довжині test_list, використовуючи розуміння списку. Тому складність допоміжного простору також дорівнює O(N), де N — це довжина test_list.
6. Знайдіть довжину списку за допомогою рекурсії
Ми можемо використовувати a рекурсивна функція що займає список lst як вхідні дані та рекурсивно викликає себе, передаючи фрагмент списку, який виключає перший елемент, доки список не стане порожнім.
Базовий випадок — коли список порожній, у цьому випадку функція повертає 0. В іншому випадку вона додає 1 до результату виклику функції з решти списку.
Python3
# Define a function to count the number of elements in a list using recursion> def> count_elements_recursion(lst):> > # Base case: if the list is empty, return 0> > if> not> lst:> > return> 0> > # Recursive case: add 1 to the count of the remaining elements in the list> > return> 1> +> count_elements_recursion(lst[> 1> :])> # Test the function with a sample list> lst> => [> 1> ,> 2> ,> 3> ,> 4> ,> 5> ]> print> (> 'The length of the list is:'> , count_elements_recursion(lst))> # Output: The length of the list is: 5> |
>
>Вихід
The length of the list is: 5>
Часова складність: O(n), де n - довжина списку. Це пояснюється тим, що функція здійснює n рекурсивних викликів, кожен з яких займає O(1) часу, а також виконується O(1) роботи на кожному рівні за межами рекурсивного виклику.
Складність простору: O(n), де n - довжина списку. Це пояснюється тим, що функція створює n стекових кадрів у стеку викликів завдяки рекурсивним викликам.
7. Знайдіть довжину списку за допомогою функції enumerate().
Python enumerate() метод додає лічильник до ітерованого і повертає його у формі об’єкта перерахування.
Python3
# python code to find the length> # of list using enumerate function> list1> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> s> => 0> for> i, a> in> enumerate> (list1):> > s> +> => 1> print> (s)> |
>
>Вихід
5>
8. Знайдіть довжину списку за допомогою колекцій
Крім того, ви також можете використовувати сума() разом із методом values() функції Колекції Об'єкт лічильника для отримання довжини списку.
Python3
як перетворити char на рядок
from> collections> import> Counter> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Finding length of list using Counter()> list_len> => sum> (Counter(test_list).values())> print> (> 'Length of list using Counter() is:'> , list_len)> # This code is contributed by Edula Vinay Kumar Reddy> |
>
>Вихід
Length of list using Counter() is: 5>
Часова складність: O(n), де n - довжина списку. Це пояснюється тим, що функція Counter() має часову складність O(n), коли застосовується до списку довжиною n, а метод values() і функція sum() мають часову складність O(n). до списку довжини n.
Космічна складність: O(n), як функція Counter(), створює словник із n пар ключ-значення, кожна з яких представляє елемент і його кількість у списку відповідно. Цей словник займає O(n) місця.
Аналіз продуктивності: Naive проти Python len() проти Python length_hint()
Вибираючи серед альтернатив, завжди необхідно мати вагому причину, чому вибрати один над іншим. У цьому розділі аналізується час, який потрібно для виконання всіх з них, щоб запропонувати кращий вибір для використання.
Python3
from> operator> import> length_hint> import> time> # Initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 7> ,> 8> ]> # Printing test_list> print> (> 'The list is : '> +> str> (test_list))> # Finding length of list> # using loop> # Initializing counter> start_time_naive> => time.time()> counter> => 0> for> i> in> test_list:> > # incrementing counter> > counter> => counter> +> 1> end_time_naive> => str> (time.time()> -> start_time_naive)> # Finding length of list> # using len()> start_time_len> => time.time()> list_len> => len> (test_list)> end_time_len> => str> (time.time()> -> start_time_len)> # Finding length of list> # using length_hint()> start_time_hint> => time.time()> list_len_hint> => length_hint(test_list)> end_time_hint> => str> (time.time()> -> start_time_hint)> # Printing Times of each> print> (> 'Time taken using naive method is : '> +> end_time_naive)> print> (> 'Time taken using len() is : '> +> end_time_len)> print> (> 'Time taken using length_hint() is : '> +> end_time_hint)> |
>
>
Вихід:
The list is : [1, 4, 5, 7, 8] Time taken using naive method is : 2.6226043701171875e-06 Time taken using len() is : 1.1920928955078125e-06 Time taken using length_hint() is : 1.430511474609375e-06>
На наведених нижче зображеннях чітко видно, що витрачений час дорівнює наївний>> length_hint()> len() , але витрачений час сильно залежить від ОС і деяких її параметрів.
У двох послідовних заходах ви можете отримати контрастні результати, насправді іноді наївному потрібно менше часу з трьох. Можливі всі 6 можливих перестановок.
naive> len()> length_hint()

naive> len()=length_hint()

naive> length_hint()>len()

naive> length_hint()> len()
Ми обговорили 8 різних методів визначення довжини списку в Python. Ми також провели аналіз продуктивності, щоб визначити, який метод є найкращим.
Щоб визначити довжину списку, можна скористатися будь-яким із наведених вище методів. Знайти довжину списку дуже корисно, коли ви маєте справу з величезними списками, і вам потрібно перевірити кількість записів.
Перегляньте інші сторінки зі списками Python:
- Методи Python List
- Вправа зі списком Python
- Просторова складність операцій зі списками в Python