logo

Kuinka löytää luettelon pituus Pythonissa

Python-ohjelmointiin kiinteä osa lista on kaikkien Python-käyttäjien opittava, ja sen hyödyn ja toimintojen tunteminen on välttämätöntä ja aina plussaa.

Monet toiminnot suoritetaan luetteloissa, mutta tässä artikkelissa käsitellään luettelon pituutta. Listan pituus tarkoittaa siinä olevien elementtien määrää. Tarkastelemme 8 eri menetelmää luettelon pituuden selvittämiseksi Python .



Esimerkki:

  Input:   lst = [10,20,30,40]   Output:   4   Explanation:   The output is 4 because the length of the list is 4.>

Etsi luettelon pituus Pythonissa

Alla on menetelmät, joita käsittelemme tässä artikkelissa:

1. Etsi listan pituus len()-funktiolla

Python vain() Funktio on Pythonin sisäänrakennettu toiminto. Sitä voidaan käyttää kohteen pituuden selvittämiseen ohittamalla objekti len-funktion suluissa.



Python 3






# Python len()> li>=> [>10>,>20>,>30>]> n>=> len>(li)> print>(>'The length of list is: '>, n)>

>

>

Lähtö:

The length of list is: 3>

Aika monimutkaisuus: O(n), missä n on listan pituus
Aputila: O(1)

2. Etsi luettelon pituus naiivilla menetelmällä

Tässä menetelmässä vain suoritetaan silmukka ja nostetaan laskuria luettelon viimeiseen elementtiin, jotta saadaan selville sen lukumäärä. Tämä on yksinkertaisin strategia, jota voidaan mahdollisesti käyttää muiden nykyisten tekniikoiden puuttuessa.

Python 3




# 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))>

>

>

Lähtö:

The list is : [1, 4, 5, 7, 8] Length of list using naive method is : 5>

Aika monimutkaisuus: Päällä)
Aputila: O(1)

kuinka tehdä uusiksi Photoshopissa

3. Etsi listan pituus pituus_vinkki()-menetelmällä

Tämä tekniikka on vähemmän tunnettu tekniikka luettelon pituuden löytämiseksi. Tämä tietty menetelmä on määritelty operaattoriluokassa ja se voi myös kertoa ei. luettelossa olevista elementeistä. Täältä löydämme luettelon pituuden käyttämällä len() ja pituus_vinkki()

Python 3




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))>

>

>

Lähtö:

The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>

4. Etsi listan pituus käyttämällä sum()-funktiota

Käytä iteraatiota summan sisällä ja jokaisella iteraatiolla lisää yhden ja iteroinnin lopussa saamme listan kokonaispituuden.

Python 3




# 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))>

>

>

Lähtö:

The list is : [1, 4, 5, 7, 8] Length of list using len() is : 5 Length of list using length_hint() is : 5>

5. Selvitä luettelon pituus käyttämällä luettelon ymmärtämistä

Alusta luettelo nimeltä testi_lista joillain arvoilla, alusta muuttuja, jonka nimi on pituus, nollaksi. Käytä luettelon ymmärtämistä luodaksesi ykkösten sarja jokaiselle test_list-luettelon elementille.

Tämä luo luettelon niistä, joiden pituus on sama kuin test_list. Käytä nyt sum()-funktiota summaamaan kaikki funktion luomassa luettelossa olevat listan ymmärtäminen . Määritä summa pituusmuuttujalle. Tulosta pituusmuuttuja.

voiko luokka laajentaa useita luokkia

Python 3




# 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)>

>

>

Lähtö

Length of list using list comprehension is: 5>

Aika monimutkaisuus: Listan ymmärtäminen luo uuden listan, jonka pituus on yhtä suuri kuin testi_luettelon pituus. Sum()-funktio iteroi sitten tämän luettelon yli laskeakseen summan. Siksi tämän algoritmin aikamonimutkaisuus on O(N), missä N on testilistan pituus.
Aputila: Algoritmi luo listan ymmärtämisen avulla uuden listan niistä, joiden pituus on yhtä pitkä kuin testi_listan pituus. Siksi apuavaruuden kompleksisuus on myös O(N), missä N on testilistan pituus.

6. Etsi luettelon pituus käyttämällä rekursiota

Voimme käyttää a rekursiivinen toiminto se vie listan lst syötteenä ja kutsuu itseään rekursiivisesti välittäen luettelosta osan, joka jättää ensimmäisen elementin pois, kunnes luettelo on tyhjä.

Perustapaus on, kun lista on tyhjä, jolloin funktio palauttaa 0. Muussa tapauksessa se lisää 1:n funktion kutsun tulokseen muualla listassa.

Python 3




# 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>

>

>

Lähtö

The length of the list is: 5>

Aika monimutkaisuus: O(n) missä n on listan pituus. Tämä johtuu siitä, että funktio tekee n rekursiivista kutsua, joista kukin vie O(1) aikaa, ja jokaisella tasolla tehdään myös O(1)-työtä rekursiivisen kutsun ulkopuolella.
Avaruuden monimutkaisuus: O(n) missä n on listan pituus. Tämä johtuu siitä, että toiminto luo n pinokehystä puhelupinoon rekursiivisten kutsujen vuoksi.

7. Etsi luettelon pituus enumerate()-funktiolla

Python luetella() menetelmä lisää laskurin iteroitavaan ja palauttaa sen luetteloivan objektin muodossa.

Python 3




kuinka pistää pilkata abstrakti luokka
# 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)>

>

>

Lähtö

5>

8. Selvitä luettelon pituus kokoelmien avulla

Vaihtoehtoisesti voit käyttää myös summa() -funktion arvot()-menetelmän kanssa Kokoelmat Laskuriobjekti saadaksesi luettelon pituuden.

Python 3




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>

>

>

Lähtö

Length of list using Counter() is: 5>

Aika monimutkaisuus: O(n), missä n on listan pituus. Tämä johtuu siitä, että Counter()-funktion aikamonimutkaisuus on O(n), kun sitä käytetään luetteloon, jonka pituus on n, ja arvot()-metodin ja summa()-funktion molempien aikamonimutkaisuus on O(n), kun niitä käytetään. luetteloon, jonka pituus on n.
Tilan monimutkaisuus: O(n) Counter()-funktiona luo sanakirjan, jossa on n avainarvoparia, joista kukin edustaa elementtiä ja sen määrää luettelossa, vastaavasti. Tämä sanakirja vie O(n) tilaa.

Suorituskykyanalyysi: Naive vs Python len() vs Python pituus_vinkki()

Kun valitset vaihtoehdoista, on aina oltava pätevä syy valita toinen vaihtoehto. Tässä osiossa analysoidaan aika-analyysin siitä, kuinka paljon aikaa kuluu niiden kaikkien suorittamiseen, jotta voidaan tarjota parempi vaihtoehto käytettäväksi.

Python 3




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)>

>

>

Lähtö:

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>

Alla olevista kuvista näkyy selvästi, että käytetty aika on naiivi>> pituus_vinkki()> len() , mutta kuluva aika riippuu suuresti käyttöjärjestelmästä ja useista sen parametreista.

Kahdella peräkkäisellä juoksulla saatat saada vastakkaisia ​​tuloksia, itse asiassa joskus naiivi vie vähiten aikaa kolmesta. Kaikki 6 mahdollista permutaatiota ovat mahdollisia.

naiivi> len()> pituus_vihje()

naiivi> len()=length_vint()

naiivi> pituus_vinkki()>len()

naiivi> pituus_vinkki()> len()

Olemme keskustelleet 8 eri menetelmästä luettelon pituuden selvittämiseksi Pythonissa. Olemme myös tehneet suorituskykyanalyysin tarkistaaksemme, mikä menetelmä on paras.

Voit käyttää mitä tahansa yllä olevista tavoista löytääksesi luettelon pituuden. Listan pituuden löytäminen on erittäin hyödyllistä, kun käsittelet suuria listoja ja haluat tarkistaa merkintöjen määrän.

muokata tiedostoa linux

Katso lisää Python-listasivuja: