Проверите дужину листе у Питхон-у у 3 једноставна корака

У овом чланку видимо како да проверите дужину листе у неким од једноставних корака и анализирамо који је бољи.

Шта је Питхон листа?

Листа је колекција низова у Питхон-у која може да складишти више типова података у њој. Може да складишти цео број, флоат, стринг, логичку вредност или чак листу унутар листе.

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

Питхон листе се могу креирати помоћу угласте заграде или функције конструктора листе.

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, 'techblog.co.rs', True, [1, 1.1, 'Geekflare', True]))

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

Горња листа скуаре_брацкет_лист је листа креирана коришћењем угластих заграда([]), цонструцтор_лист је листа креирана помоћу конструктора листе. Оба производе само исти излаз листе.

Листа може бити променљива, дозволити дупликате у њој и бити доступна коришћењем индекса.

  Направите извештај о инциденту за неколико минута помоћу ових шаблона

Методе за проналажење дужине листе

  • лен() уграђена функција
  • ленгтх_хинт метод из оператора
  • прилагођена функција и бројач

Метод 1: лен() уграђена функција

лен() је функција уграђена у Питхон која се користи за проналажење дужине листе, као и за друге итерабле као што су Сет, Туплес, Дицтионари.

Пример фрагмента

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

languages_length = len(languages)

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

Излаз

Length of the Language List is:  5

Надам се да имате инсталиран Питхон, ако није, можете користити онлајн Питхон компајлер да бисте вежбали код.

Метод 2: метода ленгтх_хинт из оператора

ленгтх_хинт се користи за враћање дужине итерабле објекта (као што су Листа, Сет, Туплес, Речник). Доступан је унутар Питхон оператор модула. Није доступно као други уграђени оператери.

Пример фрагмента

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)

Излаз

Length of the Language List using Operator is:  5

Метод 3: Прилагођена функција и бројач

У овој методи да бисмо пронашли дужину листе, користићемо традиционални метод коришћењем фор-петље и бројача.

За то ћемо написати функцију у Питхон-у. који узима листу или други итерабле као аргумент и враћа дужину итерабле.

Исечак прилагођене функције

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

Пример фрагмента

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)

Излаз

Length of the Language List using Custom function is:  5

Анализирајући те 3 методе

Анализа учинка за велику листу

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)

Излаз

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

Као што видимо, ленгтх_хинт је бржи (3.0621886253356934е-06) када су подаци у милионима. То је зато што ЦПитхон рунтиме користи наговештаје дужине. Где се то зове омот од питона.

  Најбољи ИДЕ за Питхон

Анализа учинка за малу листу

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)

Излаз

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

Као што видимо, лен() је бржи (7.813796401023865е-07) када су подаци у хиљадама или мање.

У оба случаја, наша прилагођена функција са бројачем одузима више времена од обе методе.

Закључак

У овом чланку разумемо различите начине за проверу дужине листе и како брзо проверавају дужину листе.