Lista som är en integrerad del av Python-programmering måste läras av alla Python-användare och att ha kunskap om dess nytta och funktioner är viktigt och alltid ett plus.
Många operationer utförs i listor, men i den här artikeln kommer vi att diskutera längden på en lista. Längden på en lista betyder antalet element den har. Vi ska titta på 8 olika metoder för att hitta längden på en lista i Pytonorm .
Exempel:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Hitta längden på en lista i Python
Nedan är metoderna som vi kommer att täcka i den här artikeln:
- Använder sig av endast() fungera
- Använder naiv metod
- Använder length_hint()
- Använder sig av belopp() metod
- Använder en listförståelse
- Använder sig av rekursion
- Använder sig av räkna upp fungera
- Använder sig av Samlingar Modul
1. Hitta längden på en lista med len()-funktionen
Pytonorm endast() function är en inbyggd funktion i Python. Den kan användas för att hitta längden på ett objekt genom att skicka objektet inom parentesen av len-funktionen.
Python3
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Produktion:
The length of list is: 3>
Tidskomplexitet: O(n), där n är längden på listan
Hjälputrymme: O(1)
2. Hitta längden på en lista med naiv metod
I den här metoden kör man bara en slinga och ökar räknaren till det sista elementet i listan för att veta dess antal. Detta är den mest grundläggande strategin som möjligen kan användas i avsaknad av andra nuvarande tekniker.
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))> |
>
>
Produktion:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Tidskomplexitet: På)
Hjälputrymme: O(1)
abstrakt klass i java
3. Hitta längden på en lista med metoden length_hint()
Denna teknik är en mindre känd teknik för att hitta listlängd. Denna speciella metod är definierad i operatorklassen och den kan också säga nej. av element som finns i listan. Här hittar vi längden på listan med len() och length_hint()
Python3
charat java
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))> |
>
>
Utgång:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Hitta längden på en lista med funktionen sum()
Använd iteration inuti summan och med varje iteration adderas en och i slutet av iterationen får vi den totala längden på listan.
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))> |
>
>
Produktion:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Hitta längden på en lista med hjälp av en listförståelse
Initiera en lista som heter test_list med några värden Initiera sedan en variabel som heter längd till 0. Använd en listförståelse för att generera en sekvens av ettor för varje element i test_listan.
Detta kommer att skapa en lista med sådana med samma längd som test_listan. Använd nu sum()-funktionen för att summera alla i listan som genereras av listförståelse . Tilldela summan till längdvariabeln. Skriv ut längdvariabeln.
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)> |
>
>Produktion
Length of list using list comprehension is: 5>
Tidskomplexitet: Listförståelsen skapar en ny lista med en längd som är lika med längden på test_listan. Sum()-funktionen itererar sedan över denna lista för att beräkna summan. Därför är tidskomplexiteten för denna algoritm O(N), där N är längden på test_listan.
Hjälputrymme: Algoritmen skapar en ny lista med ettor med en längd som är lika med längden på test_list med hjälp av listförståelsen. Därför är hjälputrymmeskomplexiteten också O(N), där N är längden på test_listan.
virtuellt minne
6. Hitta längden på en lista med hjälp av rekursion
Vi kan använda en rekursiv funktion som kräver en lista lst som input och rekursivt anropar sig själv, skickar in en del av listan som exkluderar det första elementet tills listan är tom.
Basfallet är när listan är tom, i vilket fall funktionen returnerar 0. Annars lägger den till 1 till resultatet av att anropa funktionen på resten av listan.
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> |
>
>Produktion
The length of the list is: 5>
Tidskomplexitet: O(n) där n är längden på listan. Detta beror på att funktionen gör n rekursiva anrop, vart och ett tar O(1)-tid, och det görs också O(1)-arbete på varje nivå utanför det rekursiva anropet.
Utrymmes komplexitet: O(n) där n är längden på listan. Detta beror på att funktionen skapar n stackramar på anropsstacken på grund av de rekursiva anropen.
7. Hitta längden på en lista med enumerate()-funktionen
Pytonorm räkna upp() metod lägger till en räknare till en iterabel och returnerar den i form av ett uppräkningsobjekt.
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)> |
>
>Produktion
5>
8. Hitta längden på en lista med hjälp av samlingar
Alternativt kan du också använda belopp() fungerar tillsammans med metoden values() för Samlingar Motobjekt för att få längden på listan.
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> |
>
>Produktion
Length of list using Counter() is: 5>
Tidskomplexitet: O(n), där n är längden på listan. Detta beror på att funktionen Counter() har en tidskomplexitet på O(n) när den tillämpas på en lista med längden n, och values()-metoden och sum()-funktionen båda har en tidskomplexitet på O(n) när de tillämpas till en lista med längd n.
Utrymmets komplexitet: O(n), som Counter()-funktionen, skapar en ordbok med n nyckel-värdepar, som vart och ett representerar ett element och dess antal i listan. Denna ordbok tar upp O(n) utrymme.
Prestandaanalys: Naiv vs Python len() vs Python length_hint()
När man väljer bland alternativ är det alltid nödvändigt att ha en giltig anledning till att välja en framför en annan. Det här avsnittet gör en tidsanalys av hur mycket tid det tar att utföra dem alla för att erbjuda ett bättre val att använda.
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)> |
>
>
Produktion:
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>
På bilderna nedan kan det tydligt ses att det tar tid naiv>> length_hint()> len() , men tiden det tar beror mycket på operativsystemet och flera av dess parametrar.
I två på varandra följande körningar kan du få kontrasterande resultat, ibland tar naiv minst tid av tre. Alla de 6 möjliga permutationerna är möjliga.
naiv> len()> length_hint()

naiv> len()=length_hint()

naiv> length_hint()>len()

naiv> length_hint()> len()
Vi har diskuterat 8 olika metoder för att hitta längden på en lista i Python. Vi har även gjort en prestationsanalys för att kolla vilken metod som är bäst.
Du kan använda någon av ovanstående metoder för att hitta längden på en lista. Att hitta listlängd är mycket användbart när du har att göra med enorma listor och du vill kontrollera antalet poster.
omvandlarsträng till datum
Kolla in fler Python-listor:
- Python List metoder
- Python List Övning
- Utrymmeskomplexitet för listoperationer i Python