Lista będąca integralną częścią programowania w Pythonie musi być poznana przez wszystkich użytkowników Pythona, a wiedza na temat jej użyteczności i operacji jest niezbędna i zawsze stanowi plus.
Wiele operacji wykonuje się na listach, ale w tym artykule omówimy długość listy. Długość listy oznacza liczbę jej elementów. Przyjrzymy się 8 różnym metodom sprawdzania długości listy Pyton .
filmy
Przykład:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Znajdź długość listy w Pythonie
Poniżej znajdują się metody, które omówimy w tym artykule:
- Za pomocą tylko() funkcjonować
- Używanie metody naiwnej
- Używanie długości_hint()
- Za pomocą suma() metoda
- Używać zrozumienie listy
- Za pomocą rekurencja
- Za pomocą wyliczać funkcjonować
- Za pomocą Kolekcje Moduł
1. Znajdź długość listy za pomocą funkcji len().
Pyton tylko() funkcja jest wbudowaną funkcją w Pythonie. Można go użyć do znalezienia długości obiektu, przekazując obiekt w nawiasach funkcji len.
Python3
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Wyjście:
The length of list is: 3>
Złożoność czasowa: O(n), gdzie n jest długością listy
Przestrzeń pomocnicza: O(1)
2. Znajdź długość listy metodą naiwną
W tej metodzie wystarczy uruchomić pętlę i zwiększyć licznik do ostatniego elementu listy, aby poznać jego liczbę. Jest to najbardziej podstawowa strategia, którą można ewentualnie zastosować w przypadku braku innych obecnych technik.
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))> |
>
>
Wyjście:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)
3. Znajdź długość listy za pomocą metodylength_hint().
Ta technika jest mniej znaną techniką znajdowania długości listy. Ta konkretna metoda jest zdefiniowana w klasie operatora i może również powiedzieć „nie”. elementów znajdujących się na liście. Tutaj znajdujemy długość listy za pomocą funkcji len() ilength_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))> |
>
>
Wyjście :
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Znajdź długość listy za pomocą funkcji sum().
Użyj iteracji wewnątrz sumy i przy każdej iteracji dodaj jeden, a na końcu iteracji otrzymamy całkowitą długość listy.
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))> |
>
>
Wyjście:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Znajdź długość listy, korzystając ze zrozumienia listy
Zainicjuj listę o nazwie lista_testów z pewnymi wartościami, a następnie Zainicjuj zmienną o nazwie długość na 0. Użyj rozumienia listy, aby wygenerować sekwencję jedynek dla każdego elementu na liście testowej.
Spowoduje to utworzenie listy o tej samej długości co test_list. Teraz użyj funkcji sum(), aby zsumować wszystkie jedynki na liście wygenerowanej przez zrozumienie listy . Przypisz sumę do zmiennej długości. Wydrukuj zmienną długości.
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)> |
>
>Wyjście
Length of list using list comprehension is: 5>
Złożoność czasowa: Rozumienie listy tworzy nową listę o długości równej długości listy testowej. Następnie funkcja sum() wykonuje iterację po tej liście, aby obliczyć sumę. Dlatego złożoność czasowa tego algorytmu wynosi O(N), gdzie N jest długością listy testowej.
Przestrzeń pomocnicza: Algorytm tworzy nową listę jedynek o długości równej długości test_list, korzystając ze zrozumienia list. Dlatego złożoność przestrzeni pomocniczej wynosi również O(N), gdzie N jest długością listy_testowej.
6. Znajdź długość listy za pomocą rekurencji
Możemy użyć A funkcja rekurencyjna to wymaga listy ostatni jako dane wejściowe i rekurencyjnie wywołuje sam siebie, przekazując fragment listy, który wyklucza pierwszy element, dopóki lista nie będzie pusta.
Podstawowym przypadkiem jest pusta lista, w którym to przypadku funkcja zwraca 0. W przeciwnym razie dodaje 1 do wyniku wywołania funkcji na pozostałej części listy.
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> |
>
>Wyjście
The length of the list is: 5>
Złożoność czasowa: O(n) gdzie n jest długością listy. Dzieje się tak, ponieważ funkcja wykonuje n wywołań rekurencyjnych, każde trwa O(1), a poza wywołaniem rekurencyjnym na każdym poziomie jest wykonywana praca O(1).
Złożoność przestrzeni: O(n) gdzie n jest długością listy. Dzieje się tak, ponieważ funkcja tworzy n ramek stosu na stosie wywołań w wyniku wywołań rekurencyjnych.
7. Znajdź długość listy za pomocą funkcji enumerate().
Pyton wyliczać() Metoda dodaje licznik do obiektu iterowalnego i zwraca go w postaci obiektu wyliczającego.
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)> |
>
hiba bukhari
>Wyjście
5>
8. Znajdź długość listy za pomocą kolekcji
Alternatywnie możesz także skorzystać z suma() funkcję wraz z metodą wartości() metody Kolekcje Licznik, aby uzyskać długość listy.
Python3
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> |
>
>Wyjście
Length of list using Counter() is: 5>
Złożoność czasowa: O(n), gdzie n jest długością listy. Dzieje się tak, ponieważ funkcja Counter() ma złożoność czasową O(n) po zastosowaniu do listy o długości n, a metoda wartości() i funkcja sum() mają złożoność czasową O(n) po zastosowaniu do listy długości n.
Złożoność przestrzeni: O(n), jako funkcja Counter(), tworzy słownik zawierający n par klucz-wartość, z których każda reprezentuje odpowiednio element i jego liczbę na liście. Słownik ten zajmuje przestrzeń O(n).
Analiza wydajności: naiwny vs Python len() vs Python długość_hint()
Dokonując wyboru pomiędzy alternatywami, zawsze konieczne jest posiadanie ważnego powodu, dla którego warto wybrać jedną a nie drugą. W tej sekcji dokonano analizy czasu potrzebnej na wykonanie wszystkich z nich, aby zapewnić lepszy wybór.
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)> |
>
>
Wyjście:
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>
Na poniższych zdjęciach wyraźnie widać, ile czasu zajęło naiwny>> długość_hint()> len() , ale czas potrzebny w dużym stopniu zależy od systemu operacyjnego i kilku jego parametrów.
W dwóch kolejnych seriach możesz uzyskać kontrastujące wyniki, czasami naiwność zajmuje najmniej czasu z trzech. Możliwych jest wszystkie możliwe 6 permutacji.
naiwny> len()> długość_wskazówki()

naiwny> len()=length_hint()

naiwny> długość_podpowiedź()>len()

naiwny> długość_hint()> len()
Omówiliśmy 8 różnych metod znajdowania długości listy w Pythonie. Przeprowadziliśmy również analizę wydajności, aby sprawdzić, która metoda jest najlepsza.
Aby znaleźć długość listy, możesz użyć dowolnej z powyższych metod. Sprawdzanie długości listy jest bardzo przydatne, gdy mamy do czynienia z dużymi listami i chcemy sprawdzić liczbę wpisów.
Sprawdź więcej stron z listami Pythona:
- Metody listy Pythona
- Ćwiczenie z listą Pythona
- Złożoność przestrzenna operacji listowych w Pythonie