Въведение в списъка с разбиране Python

Разбиранията осигуряват кратък и лесен начин за конструиране на нови последователности, като се използват вече дефинирани последователности в Python. Тези последователности могат да бъдат списъци, набори, речници и др. Разбирането на списъците е една от ценните характеристики на Python. С две думи, списъците за разбиране предлага начин за създаване на нови списъци въз основа на съществуващи списъци. С други думи, разбирането на списъка е един прост начин за създаване на списък въз основа на някои итерабелни. Тук, повтарящ се е всичко, което може да се използва за примка. Разбиранията на списъка правят възможно използването на алтернативен синтаксис за създаване на списъци и всякакви други последователни типове данни в python. Ще разгледаме как те са полезни по-късно. Има 3 компонента за разбиране на списъка, това са:

  • Изходен израз: Този е незадължителен и може да се игнорира.
  • Iterable.
  • Променлива, която представлява членове на итерабела, често се нарича Iterator Variable.

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

В python можем да създадем списъчни разбирания, като използваме следния синтаксис:

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)

изход:

Тук можете да видите, че квадратните скоби „()“ се използват за означаване, че изходът на израза вътре в тях е списък.

Списък на разбиране и ламбда функции

Трябва да имате предвид, че разбирането на списъците не е единственият начин за създаване на списъци, Python има много вградени функции и lambda функция, които могат да се използват, като например:

Код:

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)

изход:

Примери за разбиране на списъка Python

По-долу са примерите на списъка с разбиране Python:

Пример №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)

изход:

Предимства на списъка разбирания Python

Човек може да си помисли, ако Loops може да се използва за извършване на почти всичко разбиране на списъка, защо да ги използваме на първо място? Е, отговорът е в бързината и времето, необходимо за изпълнение на задачата и необходимото количество памет. Когато се прави разбиране на списъка, ние вече намаляваме 3 реда код в един и когато е направено, кодът е далеч по-бърз, както когато е изправен пред разбирането на списъка, python разпределя първо паметта за списъка и след това добавя елементи вътре в него. също така, без съмнение е по-елегантен и сложен начин за създаване на списъци, които се основават на вече съществуващи списъци.

заключение

Сега, когато имахме известен опит с разбирането на списъците, е лесно да разберем как те ни позволяват да превърнем един списък в нов списък. Те имат прост синтаксис, който ограничава количеството работа, необходима за създаване на списък. Като се има предвид, че синтаксисът и структурата на разбирането на списъка всъщност е като нотация за създаване на набор от програми, те стават втора природа за програмистите бързо и гарантират, че след като кодът бъде предаден на някой друг човек за поддържане и разширяване, ще бъде лесно да се разбере и работи с.

Препоръчителен член

Това е ръководство за списъка с разбиране Python. Тук обсъждаме разбирането на списъка и ламбда функциите, заедно с внедряването на кода и изхода. Можете да разгледате и другите ни предложени статии, за да научите повече -

  1. Деструктор в Python с предимства
  2. Правете докато цикъл в Python с блок-схема
  3. String Array в Python с методи
  4. Какво е ламбда слоевете AWS?
  5. Типове данни PL / SQL
  6. String Array в JavaScript
  7. Различни видове SQL данни с примери
  8. Пълно ръководство за масив от струни