Kontrollera längden på listan i Python i 3 enkla steg

I den här artikeln ser vi hur du kontrollerar längden på en lista i några av de enkla stegen och analyserar vilken som är bättre.

Vad är Python List?

Listan är en arraysamling i Python som kan lagra flera datatyper i den. Den kan lagra ett heltal, flytande, sträng, boolesk eller till och med lista inuti en lista.

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-listor kan skapas med en hakparentes eller en listkonstruktorfunktion.

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, 'adminvista.com', True, [1, 1.1, 'Geekflare', True]))

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

Ovanstående square_bracket_list är en lista skapad med hakparentes([]), constructor_list är en lista skapad med hjälp av listkonstruktorn. Båda producerar endast samma listutdata.

Listan kan vara ändringsbar, tillåta dubbletter i den och vara tillgänglig genom att använda ett index.

Metoder för att hitta listlängd

  • len() inbyggd funktion
  • length_hint-metoden från operatören
  • anpassad funktion & disk

Metod 1: len() inbyggd funktion

len() är en inbyggd pythonfunktion som används för att hitta längden på listan och även för andra iterables som Set, Tuples, Dictionary.

Exempel Snippet

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

Jag hoppas att du har Python installerat, om inte kan du använda en online Python-kompilator för att öva på koden.

Metod 2: length_hint-metod från operatör

length_hint används för att returnera en längd på ett itererbart objekt (som List, Set, Tuples, Dictionary). Den är tillgänglig inuti pythonoperatörsmodulen. Inte tillgänglig som andra inbyggda operatörer.

Exempel Snippet

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

Metod 3: Anpassad funktion & räknare

I den här metoden för att hitta längden på listan kommer vi att använda den traditionella metoden genom att använda for-loop och räknare.

För det kommer vi att skriva en funktion i python. som tar en lista eller annan iterabel som argument och returnerar längden på en iterabel.

Anpassat funktionsutdrag

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

Exempel Snippet

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

Analyserar dessa 3 metoder

Prestandaanalys för en stor lista

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 är length_hint snabbare(3.0621886253356934e-06) när data är i miljoner. Det beror på att längdtips används av CPython runtime. Där det kallas ett pytonomslag.

Prestandaanalys för en liten lista

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 är len() snabbare(7.813796401023865e-07) när data är i tusentals eller mindre.

I båda fallen tar vår anpassade funktion med räknare mer tid än båda metoderna.

Slutsats

I den här artikeln förstår vi olika sätt att kontrollera längden på listan och hur de snabbt kontrollerar längden på listan.