List is een integraal onderdeel van Python-programmeren en moet door alle Python-gebruikers worden geleerd. Kennis van het nut en de werking ervan is essentieel en altijd een pluspunt.
Veel bewerkingen worden uitgevoerd in lijsten, maar in dit artikel bespreken we de lengte van een lijst. De lengte van een lijst betekent het aantal elementen dat deze bevat. We gaan kijken naar 8 verschillende methoden om de lengte van een lijst te vinden Python .
Voorbeeld:
Input: lst = [10,20,30,40] Output: 4 Explanation: The output is 4 because the length of the list is 4.>
Zoek de lengte van een lijst in Python
Hieronder staan de methoden die we in dit artikel zullen behandelen:
- Gebruik makend van alleen() functie
- Naïeve methode gebruiken
- Lengte_hint() gebruiken
- Gebruik makend van som() methode
- Gebruik maken van een lijst begrip
- Gebruik makend van herhaling
- Gebruik makend van opsommen functie
- Gebruik makend van Collecties Module
1. Zoek de lengte van een lijst met behulp van de len()-functie
Python alleen() functie is een ingebouwde functie in Python. Het kan worden gebruikt om de lengte van een object te vinden door het object tussen de haakjes van de len-functie door te geven.
Python3
# Python len()> li> => [> 10> ,> 20> ,> 30> ]> n> => len> (li)> print> (> 'The length of list is: '> , n)> |
>
>
Uitgang:
The length of list is: 3>
Tijdcomplexiteit: O(n), waarbij n de lengte van de lijst is
Hulpruimte: O(1)
2. Vind de lengte van een lijst met behulp van een naïeve methode
Bij deze methode voert u gewoon een lus uit en verhoogt u de teller tot het laatste element van de lijst waarvan het aantal bekend is. Dit is de meest fundamentele strategie die mogelijk kan worden toegepast bij gebrek aan andere huidige technieken.
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))> |
>
>
Uitgang:
The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>
Tijdcomplexiteit: Op)
Hulpruimte: O(1)
afdrukarray in Java
3. Zoek de lengte van een lijst met behulp van de methode length_hint().
Deze techniek is een minder bekende techniek voor het vinden van lijstlengte. Deze specifieke methode is gedefinieerd in de operatorklasse en kan ook het nee vertellen. van de elementen die in de lijst aanwezig zijn. Hier vinden we de lengte van de lijst met behulp van len() en 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))> |
>
>
Uitgang:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
4. Zoek de lengte van een lijst met behulp van de functie sum().
Gebruik iteratie binnen de som en bij elke iteratie wordt er één toegevoegd en aan het einde van de iteratie krijgen we de totale lengte van de lijst.
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))> |
>
>
Uitgang:
The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>
5. Vind de lengte van een lijst met behulp van een lijstbegrip
Initialiseer een opgeroepen lijst testlijst met enkele waarden initialiseer vervolgens een variabele genaamd lengte naar 0. Gebruik een lijstbegrip om een reeks enen te genereren voor elk element in de testlijst.
Hierdoor wordt een lijst gemaakt met dezelfde lengte als de test_list. Gebruik nu de functie sum() om alle waarden in de lijst op te tellen die is gegenereerd door de lijst begrip . Wijs de som toe aan de lengtevariabele. Druk de lengtevariabele af.
Python3
java string.format
# 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)> |
>
>Uitvoer
Length of list using list comprehension is: 5>
Tijdcomplexiteit: Het lijstbegrip creëert een nieuwe lijst met een lengte gelijk aan de lengte van de testlijst. De functie sum() herhaalt vervolgens deze lijst om de som te berekenen. Daarom is de tijdscomplexiteit van dit algoritme O(N), waarbij N de lengte van de testlijst is.
Hulpruimte: Het algoritme maakt een nieuwe lijst met enen met een lengte gelijk aan de lengte van de test_list met behulp van het lijstbegrip. Daarom is de complexiteit van de hulpruimte ook O(N), waarbij N de lengte van de testlijst is.
6. Zoek de lengte van een lijst met behulp van recursie
Wij kunnen gebruik maken van een recursieve functie daar is een lijst voor nodig lst als invoer en roept zichzelf recursief aan, waarbij een deel van de lijst wordt doorgegeven dat het eerste element uitsluit totdat de lijst leeg is.
Het basisscenario is wanneer de lijst leeg is, in welk geval de functie 0 retourneert. Anders wordt er 1 opgeteld bij het resultaat van het aanroepen van de functie in de rest van de lijst.
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> |
>
>Uitvoer
The length of the list is: 5>
Tijdcomplexiteit: O(n) waarbij n de lengte van de lijst is. Dit komt omdat de functie n recursieve oproepen doet, die elk O(1) tijd in beslag nemen, en er ook O(1) werk wordt gedaan op elk niveau buiten de recursieve oproep.
Ruimtecomplexiteit: O(n) waarbij n de lengte van de lijst is. Dit komt omdat de functie n stapelframes op de oproepstapel creëert vanwege de recursieve oproepen.
7. Vind de lengte van een lijst met de functie enumerate().
Python opsommen() methode voegt een teller toe aan een iterabele en retourneert deze in de vorm van een opsommingsobject.
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)> |
>
eol in python
>Uitvoer
5>
8. Zoek de lengte van een lijst met behulp van verzamelingen
Als alternatief kunt u ook gebruik maken van de som() functie samen met de waarden() methode van de Collecties Tegenobject om de lengte van de lijst te achterhalen.
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> |
>
>Uitvoer
Length of list using Counter() is: 5>
Tijdcomplexiteit: O(n), waarbij n de lengte van de lijst is. Dit komt omdat de Counter()-functie een tijdscomplexiteit van O(n) heeft wanneer toegepast op een lijst met lengte n, en de waarden()-methode en de sum()-functie beide een tijdscomplexiteit hebben van O(n) wanneer toegepast. naar een lijst met lengte n.
De ruimtecomplexiteit: O(n), als de Counter()-functie, creëert een woordenboek met n sleutel-waardeparen, die elk respectievelijk een element en het aantal ervan in de lijst vertegenwoordigen. Dit woordenboek neemt O(n)-ruimte in beslag.
Prestatieanalyse: naïef versus Python len() versus Python length_hint()
Bij het kiezen tussen alternatieven is het altijd nodig om een geldige reden te hebben waarom u de ene boven de andere kiest. In deze sectie wordt een tijdanalyse uitgevoerd van hoeveel tijd het kost om ze allemaal uit te voeren, zodat u een betere gebruikskeuze kunt bieden.
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)> |
>
>
Uitgang:
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>
In de onderstaande afbeeldingen is duidelijk te zien dat de tijd die nodig is is naïef>> lengte_hint()> len() , maar de benodigde tijd is sterk afhankelijk van het besturingssysteem en een aantal parameters ervan.
In twee opeenvolgende runs kun je contrasterende resultaten behalen, en soms kost naïef de minste tijd van de drie. Alle mogelijke 6 permutaties zijn mogelijk.
naïef> len()> lengte_hint()

naïef> len()=length_hint()

naïef> lengte_hint()>len()

naïef> lengte_hint()> len()
We hebben 8 verschillende methoden besproken om de lengte van een lijst in Python te vinden. Ook hebben we een prestatieanalyse gedaan om te kijken welke methode de beste is.
U kunt elk van de bovenstaande methoden gebruiken om de lengte van een lijst te vinden. Het vinden van de lijstlengte is erg handig als u met grote lijsten te maken heeft en u het aantal vermeldingen wilt controleren.
if else lus in Java
Bekijk meer Python-lijstpagina's:
- Python Lijst-methoden
- Python-lijstoefening
- Ruimtecomplexiteit van lijstbewerkingen in Python