Tjek længden af ​​listen i Python i 3 nemme trin

I denne artikel ser vi, hvordan du tjekker længden af ​​en liste i nogle af de nemme trin og analyserer, hvilken der er bedst.

Hvad er Python List?

Listen er en array-samling i Python, som er i stand til at gemme flere datatyper i den. Det kan gemme et heltal, flydende, streng, boolesk eller endda liste inde i en liste.

int_list = [1, 2, 3, 4, 5]

print(int_list) # output -> [1, 2, 3, 4, 5]

float_list = [1.1, 2.2, 3.3, 4.4, 5.5]

print(float_list) # output -> [1.1, 2.2, 3.3, 4.4, 5.5]

string_list = ['Geekflare', 'Cloudflare', 'Amazon']

print(string_list) # output -> ['Geekflare', 'Cloudflare', 'Amazon']

boolean_list = [True, False]

print(boolean_list) # output -> [True, False]

nested_list = [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

print(nested_list) # [[1, 2], [1.1, 2.2], ['Geekflare', 'Cloudflare'], [True, False]]

different_datatype_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(different_datatype_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

Python-lister kan oprettes ved hjælp af en firkantet parentes eller en listekonstruktørfunktion.

square_bracket_list = [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

print(square_bracket_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

constructor_list = list((1, 1.1, 'toadmin.dk', True, [1, 1.1, 'Geekflare', True]))

print(constructor_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]

Ovenstående square_bracket_list er en liste oprettet ved hjælp af firkantet parentes([]), constructor_list er en liste oprettet ved hjælp af listekonstruktøren. Begge producerer kun det samme listeoutput.

  Sådan aktiverer du forældrekontrol på iPad

Listen kan ændres, tillade dubletter i den og være tilgængelig ved at bruge et indeks.

Metoder til at finde listelængde

  • len() indbygget funktion
  • length_hint metode fra operatør
  • brugerdefineret funktion & tæller

Metode 1: len() indbygget funktion

Len() er en indbygget python-funktion, der bruges til at finde længden af ​​listen og også til andre iterables som Set, Tuples, Dictionary.

Eksempel uddrag

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = len(languages)

print('Length of the Language List is: ',languages_length)

Produktion

Length of the Language List is:  5

Jeg håber du har Python installeret, hvis ikke, kan du bruge en online Python-kompiler til at øve koden.

Metode 2: length_hint metode fra operatør

length_hint bruges til at returnere en længde af et iterabelt objekt (såsom List, Set, Tuples, Dictionary). Den er tilgængelig inde i python-operatørmodulet. Ikke tilgængelig som andre indbyggede operatører.

  10 grunde til, hvorfor du bør vælge Kinsta til at være vært for WordPress-websteder

Eksempel uddrag

import operator

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = operator.length_hint(languages)

print('Length of the Language List using Operator is: ',languages_length)

Produktion

Length of the Language List using Operator is:  5

Metode 3: Brugerdefineret funktion & tæller

I denne metode til at finde længden af ​​listen, vil vi bruge den traditionelle metode ved at bruge for-loop og counter.

Til det skal vi skrive en funktion i python. som tager en liste eller anden iterabel som argument og returnerer længden af ​​en iterabel.

Brugerdefineret funktionsuddrag

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

Eksempel uddrag

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS']

languages_length = iterable_count(languages)

print('Length of the Language List using Custom function is: ',languages_length)

Produktion

Length of the Language List using Custom function is:  5

Analyserer de 3 metoder

Præstationsanalyse for en stor liste

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 9999999))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

Produktion

3.957189619541168e-06 Length of the Integer List using len() is:  9999998
3.0621886253356934e-06 Length of the Integer List using length_hint is:  9999998
0.4059128537774086 Length of the Integer List using Custom function is:  9999998

Som vi kan se, er length_hint hurtigere(3.0621886253356934e-06), når data er i millioner. Det er fordi længdehints bruges af CPython runtime. Hvor det kaldes en python-indpakning.

  Ret fejlkode 130 Kunne ikke indlæse webside ukendt fejl

Præstationsanalyse for en lille liste

import timeit # for benchmarking & profiling
import operator

def iterable_count(iterable):
  length = 0
  for item in iterable:
    length+=1
  return length

integer_list = list(range(1, 100))

#length check using len()
start_time = timeit.default_timer()
len_length = len(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using len() is: ',len_length)

#length check using operator.length_hint
start_time = timeit.default_timer()
len_length = operator.length_hint(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using length_hint is: ',len_length)

start_time = timeit.default_timer()
iterable_count_length = iterable_count(integer_list)
print(timeit.default_timer() - start_time, 'Length of the Integer List using Custom function is: ',iterable_count_length)

Produktion

7.813796401023865e-07 Length of the Integer List using len() is:  99
1.1278316378593445e-06 Length of the Integer List using length_hint is:  99
3.462657332420349e-06 Length of the Integer List using Custom function is:  99

Som vi kan se, er len() hurtigere(7.813796401023865e-07), når data er i tusinder eller mindre.

I begge tilfælde tager vores brugerdefinerede funktion med tæller mere tid end begge metoder.

Konklusion

I denne artikel forstår vi forskellige måder at kontrollere længden af ​​listen på, og hvordan de hurtigt tjekker længden af ​​listen.