Как да използвате разбирането на списъци в Python

Как да използвате разбирането на списъци в Python

Навременното използване на разбирането на списъци в Python може да улесни итеративните операции със списъци. Освен че е единичен ред, той е по -четим и се изпълнява по -ефективно.





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





Какво представлява разбирането на списъци в Python и как работи?

Създаването на списък с елементи с Python е лесно. Задачата обаче може да стане малко досадна, когато трябва да генерирате списък със стойности или елементи от математически или низови операции. Точно тогава разбирането на списъка може да бъде полезно.





Предимство на използването на разбирането на списъка е, че можете да извършите няколко операции в един списък.

компютър не разпознава външен твърд диск

За разлика от това, той създава нови елементи и ги добавя към празен списък, който декларира автоматично. Така че вместо да правите празен списък ръчно и да го добавяте с за цикъл, разбирането на списъка на Python ви позволява да направите това автоматично, без да се притеснявате за това как преминава новият списък.



Терминът „разбиране на списък“ идва от факта, че всички операции са в списък на Python, присвоен на именувана променлива. Както споменахме по -рано, той ви позволява да извършвате специфични операции в един ред код. След това добавя изхода към нов списък.

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





Например може да сте изстъргване на уебсайт с BeautifulSoup . Да предположим, че възнамерявате да получите името на всички артикули и техните цени от уебсайта.

След това решавате да поставите изтритите данни в CSV или Excel файл. Идеалната практика е да изстържете името на всички артикули и техните цени и да ги поставите в отделни колони. Използването на разбиране на списък в този случай гарантира, че имате изтритите данни в специални променливи. След това можете да конвертирате такива променливи в Python DataFrame по -късно.





Вижте примера по -долу:

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

След като получите цикличните променливи, можете да ги поставите в отделни колони в DataFrame, използвайки Pandas на Python.

Как да създадете и използвате разбиране на списък в Python

The за цикълът е основен итератор в разбирането на списък. Като цяло разбирането на списък в Python приема този формат:

ComprehensionVariable = [expression for items in list]

Печат ComprehensionVariable извежда резултата от горния код като списък.

Внимавайте обаче да не объркате разбирането на списък с отворен за цикъл.

Например, нека използвайте отворен цикъл за за да получите списък на всички кратни на три между 1 и 30:

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

За да сравним двете, нека направим същото като използваме разбиране на списък:

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Можете също да използвате разбиране на списък с условни изявления. Примерният код по -долу отпечатва всички нечетни числа между 1 и 10:

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Сега, нека също да пренапишем кода по -горе, като използваме open за цикъл:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

Свързани: Как да добавите списък в Python

Разбирането на списък също приема вложени ако:

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Също така е необходимо вложено за цикъл:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Можете също така да имате обикновен вложен за цикъл в разбиране на списък:

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Можете също да манипулирате низове с разбиране на Python списък. Нека да разгледаме контра разбирането на думи по -долу:

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Разбирането на списък може също да приеме функция, която изпълнява определена операция. Нека вмъкнем функция за умножение, която получава четни числа в разбирането на списък, за да видим как работи това:

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Все още можете да напишете горния код в една функция, без да разбирате. Но разбирането на списък е полезно, когато трябва да извършите няколко повторения и да поставите всяка от тях в отделни променливи.

Например, можете да извършите друга операция на н и има специална променлива за него. Нека променим разбирането по -горе, за да генерираме четни числа от нечетни:

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Речник и набор от разбирания

В допълнение към разбирането на списък, Python предлага и речник и набор от функции за разбиране.

Разгледайте примерното разбиране на речника по -долу, за да видите как работи:

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Горният код преразглежда списъка с числа между 1 и 9 и ги прави ключовете. След това той казва на Python да умножи всеки ключ по два. И накрая, той представя резултатите от тази операция като съответните стойности за всеки ключ в получения масив.

Свързани: Как работят масивите и списъците в Python

Разбирането на набор е малко подобно на разбирането на списък. Ето пример за набор от разбирания:

сензорният екран на hp не работи windows 10
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Въпреки това, за разлика от разбирането на списък, разбирането на набор премахва дубликати:

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Можете да изпробвате кода по -горе, като използвате разбиране на списък, за да видите как се различават.

Можете ли да използвате разбиране на списъка всеки път?

Разгледахме различни примери за разбиране на списъка и къде можете да ги използвате. Въпреки това, както при всеки друг метод на Python, случаят на използване на списъка зависи от конкретния проблем, който искате да разрешите. Затова трябва да го използвате само ако е идеален за конкретния проблем, който искате да разрешите.

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

Дял Дял Туит електронна поща Как да използвате разбивки за списъци на Python (и кога да не ги използвате)

Ето всичко, което трябва да знаете за използването на тази невероятна функция на Python, която ще увеличи вашата производителност и четливост на кода за една нощ.

Прочетете Напред
Свързани теми
  • Програмиране
  • Python
За автора Идису Омисола(94 статии са публикувани)

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

Още от Idowu Omisola

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате