În acest articol, vedem cum să verificați lungimea unei liste în câțiva dintre pașii simpli și analizați care este mai bun.
Cuprins
Ce este Python List?
Lista este o colecție de matrice în Python care este capabilă să stocheze mai multe tipuri de date în ea. Poate stoca un număr întreg, float, șir, boolean sau chiar listă în interiorul unei 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]]
Listele Python pot fi create folosind o paranteză pătrată sau o funcție de constructor de listă.
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, 'tipstrick.ro', True, [1, 1.1, 'Geekflare', True])) print(constructor_list) # output -> [1, 1.1, 'Geekflare', True, [1, 1.1, 'Geekflare', True]]
Lista de paranteze pătrate de mai sus este o listă creată folosind paranteze pătrate([]), constructor_list este o listă creată folosind constructorul de listă. Ambele produc numai aceeași listă.
Lista poate fi modificată, permite duplicate în ea și poate fi accesibilă folosind un index.
Metode pentru a găsi lungimea listei
- funcția încorporată len().
- metoda length_hint de la operator
- funcție personalizată și contor
Metoda 1: funcția încorporată len().
len() este o funcție încorporată python folosită pentru a găsi lungimea listei și, de asemenea, pentru alte iterabile precum Set, Tuples, Dictionary.
Exemplu de fragment
languages = ['Python', 'Java', 'C++', 'PHP', 'nodeJS'] languages_length = len(languages) print('Length of the Language List is: ',languages_length)
Ieșire
Length of the Language List is: 5
Sper că aveți instalat Python, dacă nu, puteți utiliza un compilator Python online pentru a practica codul.
Metoda 2: metoda length_hint de la operator
length_hint este folosit pentru a returna o lungime a unui obiect iterabil (cum ar fi Listă, Set, Tuples, Dictionary). Este disponibil în interiorul modulului operator python. Nu este disponibil ca alți operatori încorporați.
Exemplu de fragment
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)
Ieșire
Length of the Language List using Operator is: 5
Metoda 3: Funcție personalizată și contor
În această metodă pentru a găsi lungimea Listei, vom folosi metoda tradițională folosind for-loop și counter.
Pentru asta, vom scrie o funcție în python. care ia ca argument o listă sau un alt iterabil și returnează lungimea unui iterabil.
Fragment de funcție personalizată
def iterable_count(iterable): length = 0 for item in iterable: length+=1 return length
Exemplu de fragment
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)
Ieșire
Length of the Language List using Custom function is: 5
Analizând acele 3 metode
Analiza performanței pentru o listă mare
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)
Ieșire
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
După cum putem vedea, length_hint este mai rapid (3.0621886253356934e-06) atunci când datele sunt în milioane. Se datorează faptului că indicii de lungime sunt folosite de CPython runtime. Unde se numește un înveliș de piton.
Analiza performanței pentru o listă mică
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)
Ieșire
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
După cum putem vedea, len() este mai rapid (7.813796401023865e-07) atunci când datele sunt în mii sau mai puțin.
În ambele cazuri, funcția noastră personalizată cu contor durează mai mult decât ambele metode.
Concluzie
În acest articol, înțelegem diferite moduri de a verifica lungimea listei și cum verifică rapid lungimea listei.