Навременното използване на разбирането на списъка в Python може да улесни итеративните операции със списъци. Освен че е един ред, той е по-четлив и се изпълнява по-ефективно.
Въпреки това, може да получите работа, ако не знаете как да го използвате. Дори може да бъде по-разочароващо, ако не знаете къде да го приложите в кода си. Тук ще ви покажем как да използвате разбирането на списъци в Python с някои реални примери.
Какво е разбиране на списъка в Python и как работи?
Създаването на списък с елементи с Python е лесно. Задачата обаче може да стане малко досадна, когато трябва да генерирате списък със стойности или елементи от математически или низови операции. Това е, когато използването на разбирането на списъка може да бъде полезно.
Предимство на използването на разбирането на списъка е, че можете да извършвате няколко операции в един списък.
За разлика от това той създава нови елементи и ги добавя към празен списък, който декларира автоматично. Така че вместо да правите празен списък ръчно и да го добавяте с
за цикъл, разбирането на списъка на Python ви позволява да правите това автоматично, без да се притеснявате за начина, по който преминава новият списък.Терминът "разбиране на списъка" идва от факта, че всички операции са в списък на Python, присвоен на име на променлива. Както казахме по-рано, той ви позволява да извършвате конкретни операции в един ред код. След това добавя изхода към нов списък.
В крайна сметка можете да използвате резултата от разбирането на списъка и за други цели. Това е така, защото тя подрежда изрази в отделни променливи. Така че можете да се обърнете към тях по-късно.
Например може да сте изстъргване на уебсайт с BeautifulSoup. Да приемем, че възнамерявате да получите името на всички артикули и техните цени от уебсайта.
След това решавате да поставите изтритите данни в CSV или Excel файл. Идеалната практика е да изстържете името на всички артикули и техните цени и да ги поставите в отделни колони. Използването на разбиране на списъка обаче в този случай гарантира, че изтритите данни са в специални променливи. След това можете да конвертирате такива променливи в Python DataFrame по-късно.
Вижте примера по-долу:
Продукти = [i.text за i в bs.find_all ('име тагове')]
Цена = [i.text за i в bs.find_all ('тагове за цена')]
След като получите цикличните променливи, можете да ги поставите в отделни колони в DataFrame, използвайки Pandas на Python.
Как да създадем и използваме разбиране на списъка в Python
The за loop е основен итератор в разбирането на списъка. Като цяло разбирането на списък в Python приема този формат:
ComprehensionVariable = [израз за елементи в списъка]
Печат Разбиране Променлива извежда резултата от горния код като списък.
Внимавайте обаче да не объркате разбирането на списъка с отвореното за цикъл.
Например, нека използвайте отворен за цикъл за да получите списък на всички кратни на три между 1 и 30:
myList = []
за i в обхват (1, 11):
myList.append (i * 3)
печат (myList)
Изход: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
За да сравним двете, нека направим едно и също, като използваме разбиране на списъка:
multiplesOf3 = [i * 3 за i в обхват (1, 11)]
печат (multiplesOf3)
Изход = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Можете да използвате разбиране на списък и с условни изявления. Примерният код по-долу отпечатва всички нечетни числа между 1 и 10:
oddNumbers = [i за i в обхват (1, 11), ако не i% 2 == 2]
печат (нечетни номера)
Изход = [1, 3, 5, 7, 9]
Сега, нека пренапишем и горния код, като използваме open за цикъл:
myList = []
за i в обхват (1, 11):
ако не i% 2 == 0:
myList.append (i)
печат (myList)
Изход: [1, 3, 5, 7, 9]
Свързани: Как да добавя списък в Python
Разбирането на списък също приема вложени оператори if:
oddNumbers = [i за i в обхват (1, 11), ако не i% 2 == 0, ако i <4]
печат (нечетни номера)
Изход: [1, 3]
Отнема и вложено за цикъл:
someNums = [[i * 2 за i в обхват (1, 3)] за _ в обхват (4)]
печат (някои номера)
Можете също така да имате обикновен вложен за цикъл в разбиране на списък:
someNums = [i * 2 за i в обхват (1, 3) за k в обхват (4)]
Можете да манипулирате низове и с разбирането на списъка на Python. Нека да разгледаме разбирането на брояч на думи по-долу:
word = ["Това е урок за разбиране на списъка на питон"]
wordCounter = [i.count ('') + 1 за i в word]
печат (wordCounter)
Изход: 7
Разбирането на списък може също да приеме функция, която изпълнява определена операция. Нека да вмъкнем функция за множител, която получава четни числа в разбирането на списък, за да видим как работи това:
Числа = [4, 7, 8, 15, 17, 10]
дефиниционен множител (n):
кратно = n * 2
връщане на множество
multipleEven = [множител (i) за i в числа, ако i% 2 == 0]
печат (multipleEven)
Изход: [8, 16, 20]
Все още можете да напишете горния код в една функция, без да използвате разбиране. Но разбирането на списък е полезно, когато трябва да извършите няколко итерации и да поставите всяка от тях в отделни променливи.
Например можете да извършите друга операция върху н и има специална променлива за него. Нека модифицираме разбирането по-горе, за да генерираме четни числа от нечетни:
multipleEvenFromOdds = [множител (i) за i в числа, ако не i% 2 == 0]
печат (multipleEvenFromOdds)
Изход: [14, 30, 34]
Речник и задаване на разбиране
В допълнение към разбирането на списък, Python предлага и речник и набор от функции за разбиране.
Погледнете примерното разбиране на речника по-долу, за да видите как работи:
съответстващ = {i: i * 2 за i в обхват (10), ако не i% 2 == 0}
печат (corr)
Изход: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
Кодът по-горе прелиства списъка с числа между 1 и 9 и ги прави ключове. След това казва на Python да умножи всеки ключ по два. И накрая, той представя резултатите от тази операция като съответните стойности за всеки ключ в получения масив.
Свързани: Как работят масивите и списъците в Python
Разбираемото разбиране е малко подобно на разбирането на списъка. Ето пример за разбиране на набор:
числа = {i ** (2) за i в обхват (10), ако i% 4 == 0}
печат (цифри)
Изход: {0, 16, 64}
Въпреки това, за разлика от разбирането на списъка, разбирането на набор премахва дубликати:
nums = {i за i в обхват (20), ако i% 2 == 1 за k в обхват (10), ако k% 2 == 1}
печат (номера)
Изход: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
Можете да изпробвате горния код, като използвате разбиране на списъка, за да видите как се различават.
Можете ли да използвате разбиране на списъците всеки път?
Разгледахме различни примери за разбиране на списъка и къде можете да ги използвате. Въпреки това, както всеки друг метод на Python, случаят на използване на разбирането на списък зависи от конкретния проблем, който искате да разрешите. Следователно трябва да го използвате само ако е идеален за конкретния проблем, който искате да разрешите.
Една от целите на разбирането на списъка е да опрости вашия код и да го направи по-четлив. Така че, не забравяйте да избягвате сложността, когато се справяте с нея. Например, дългото разбиране на Python може да стане сложно за четене. Това поражда целта му.
Ето всичко, което трябва да знаете за използването на тази невероятна функция на Python, която ще повиши вашата производителност и четливост на кода за една нощ.
- Програмиране
- Python
Idowu е запален по всичко интелигентни технологии и производителност. В свободното си време той се заиграва с кодиране и превключва на шахматната дъска, когато му е скучно, но също така обича да се откъсва от рутината от време на време. Страстта му да показва на хората пътя към съвременните технологии го мотивира да пише повече.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.