Увод у списак разумевања Питхон-а

Разумевања пружају кратак и једноставан начин конструисања нових секвенци користећи већ дефинисане секвенце у Питхон-у. Ове секвенце могу бити Листе, Скупови, Речници, итд. Разумевање пописа једна је од драгоцених карактеристика Питхона. Укратко, Попис разумевања нуди начин креирања нових листа на основу постојећих. Другим речима, Разумевање пописа је један једноставан начин креирања листе на основу неке итерабилне. Овде је итерабилно било шта што се може користити за прелазак преко петље. Разумевање пописа омогућава коришћење алтернативног синтакса за креирање листа и било којих других секвенцијалних типова података у питхон-у. Погледаћемо како су касније корисни. Постоје 3 компоненте Разумевања листа, а то су:

  • Излазни израз: Овај је опционалан и може се игнорисати.
  • Итерабле.
  • Променљива која представља чланове итерабилне, често се назива Итератор Вариабле.

Синтакса и примери:

У питхон-у можемо да створимо Списак разумевања користећи следећу синтаксу:

list_variable = (x for x in iterable)

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

Шифра:

numbers = (2, 5, 3, 7) square = () for n in numbers:
square.append(n**2)
print(square)

Излаз:

Е сад, размотримо да радимо исто, али користећи Разумевање пописа уместо петље:

Шифра:

numbers = (2, 5, 3, 7) square = (n**2 for n in numbers) print(square)

Излаз:

Овде можете видети да се квадратни заграде „()“ користе да означе да је израз израза унутар њих листа.

Списак схватања и ламбда функција

Треба имати на уму да разумевање листе није једини начин креирања листа, Питхон има много уграђених функција и ламбда функције које се могу користити, као што су:

Шифра:

letters = list(map(lambda x: x, 'human'))
print(letters)

Излаз:

Иако то функционише у многим случајевима, Разумевање листа је боље за читање и лакше их је разумети неко ко није програмер кода.

Додавање услова у схватање листе

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

Шифра:

numbers_list = ( x for x in range(20) if x % 2 == 0) print(numbers_list)

Излаз:

Ево још једног примера:

Шифра:

numbers_list = (x for x in range(100) if x % 2 == 0 if x % 5 == 0) print(numbers_list)

Излаз:

Кориштење угнијежђених петљи у разумијевањима листа

Ако је потребно, можемо користити Нестед Лоопс у списима, погледајмо како можемо на овај начин користити угнијежђене петље проналажењем транспонирања матрице:

Шифра:

transposedmatrix = () matrix = ((1, 2, 3, 4), (4, 5, 6, 8)) for i in range(len(matrix (0))):
transposedmatrix_row = () for row in matrix:
transposedmatrix_row.append(row(i))
transposedmatrix.append(transposedmatrix_row)
print(transposedmatrix)

Излаз:

Примери разумевања Питхон-а за листу

Испод су примјери Листа за разумијевање Питхон-а:

Пример бр. 1 - уклањање самогласника из дате реченице

Шифра:

def eg_for(sentence):
vowels = 'aeiou'
filter_list = () for l in sentence:
if l not in vowels:
filter_list.append(l)
return ''.join(filter_list)
def eg_lc(sentence):
vowels = 'aeiou'
return ''.join(( X for X in sentence if X not in vowels))
Now, let's define the matrix, run the program and then check-out the results:
sentence = "hello from the other side"
print ("loop result: " + eg_for(sentence))
print ("LC result: " + eg_lc(sentence))

Излаз:

Пример бр. 2 - Мапирање имена земаља са њиховим главним градовима

Шифра:

country = ( 'India', 'Italy', 'Japan' ) capital = ( 'Delhi', 'Rome', 'Tokyo' ) output_dict = ()
# Using loop for constructing dictionary
for (key, value) in zip(country, capital):
output_dict(key) = value
print("Output Dictionary using for loop:", output_dict)

Излаз:

Предности Листа за разумевање Питхон-а

Могло би се помислити ако се петље могу користити за постизање скоро свега схватања са списка, зашто их прво користити? Па, одговор је у брзини и времену потребно да се задатак обави и количини потребне меморије. Када се схвати листа, већ смањујемо 3 ретка кода у један, а када је завршен, код је далеко бржи него када се суочи са разумевањем листе, питхон прво додељује меморију за списак, а затим додаје елементе унутар ње. такође, без сумње је елегантнији и софистициранији начин прављења листа који се заснивају на већ постојећим листама.

Закључак

Сада када смо имали искуства са схватањем листе, лако је разумети како нам они омогућавају да једну листу трансформишемо у нову. Они имају једноставну синтаксу која ограничава количину рада потребну за креирање листе. С обзиром на то да су синтакса и структура поимања листе у основи слични нотацији за прављење сета, они постају друга природа за програмере и брзо осигуравају да ће се, након што се код преда неки другој особи на одржавање и проширење, лако разумети и рад са.

Препоручени чланак

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

  1. Деструктор у Питхон-у са предностима
  2. Радите док се петља у Питхон-у са дијаграмом
  3. Низ низова у Питхон-у са методама
  4. Шта је АВС Ламбда Слојеви?
  5. Врсте података ПЛ / СКЛ
  6. Стринг Арраи у ЈаваСцрипт-у
  7. Различите врсте СКЛ података са примерима
  8. Комплетан водич за низ стрингова

Категорија: