logo

Jak znaleźć długość listy w Pythonie

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:

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: