Jak używać zrozumienia list w Pythonie?

Jak używać zrozumienia list w Pythonie?

Terminowe użycie zrozumienia list w Pythonie może sprawić, że iteracyjne operacje na listach będą dla Ciebie łatwe. Oprócz tego, że jest to pojedyncza linia, jest bardziej czytelny i działa wydajniej.





Jednak możesz się zdenerwować, jeśli nie wiesz, jak go używać. Może to być nawet bardziej frustrujące, jeśli nie wiesz, gdzie go zastosować w swoim kodzie. Tutaj pokażemy Ci, jak używać rozumienia list w Pythonie z kilkoma przykładami z życia wziętymi.





Co to jest zrozumienie list w Pythonie i jak to działa?

Tworzenie listy elementów w Pythonie jest łatwe. Jednak zadanie może stać się nieco żmudne, gdy trzeba wygenerować listę wartości lub elementów z operacji matematycznych lub łańcuchowych. To wtedy może się przydać użycie rozumienia listy.





Zaletą korzystania ze zrozumienia list jest możliwość wykonywania kilku operacji na jednej liście.

Android 7.0 przenosi aplikacje na kartę SD

W przeciwieństwie do tego tworzy nowe pozycje i dołącza je do pustej listy, którą deklaruje automatycznie. Więc zamiast tworzyć pustą listę ręcznie i dołączać do niej za pomocą dla pętla, zrozumienie list w Pythonie pozwala zrobić to automatycznie, bez martwienia się o to, jak pojawi się nowa lista.



Termin „zrozumienie listy” pochodzi z faktu, że wszystkie operacje znajdują się na liście Pythona przypisanej do nazwanej zmiennej. Jak wspomnieliśmy wcześniej, pozwala wykonać określone operacje w jednym wierszu kodu. Następnie dołącza dane wyjściowe do nowej listy.

Ostatecznie możesz również użyć wyjścia listu składanego do innych celów. Dzieje się tak, ponieważ układa wyrażenia w osobnych zmiennych. Możesz więc odwołać się do nich później.





Na przykład możesz być scraping strony internetowej z BeautifulSoup . Załóżmy, że zamierzasz uzyskać nazwy wszystkich przedmiotów i ich ceny ze strony internetowej.

Następnie decydujesz się umieścić zeskrobane dane w pliku CSV lub Excel. Idealną praktyką jest zeskrobanie nazw wszystkich artykułów i ich cen oraz umieszczenie ich w osobnych kolumnach. Jednak w takim przypadku użycie list składanych zapewnia, że ​​zeskrobane dane znajdują się w dedykowanych zmiennych. Możesz później przekonwertować takie zmienne do Pythona DataFrame.





Spójrz na poniższy przykład:

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

Gdy uzyskasz zapętlone zmienne, możesz umieścić je w osobnych kolumnach w DataFrame za pomocą Pandas Pythona.

Jak tworzyć i używać list składanych w Pythonie?

ten dla pętla jest niezbędnym iteratorem w zrozumieniu listy. Ogólnie rzecz biorąc, lista składana w Pythonie przyjmuje następujący format:

ComprehensionVariable = [expression for items in list]

Druk Zmienna rozumienia wyświetla wynik powyższego kodu w postaci listy.

Uważaj jednak, aby nie pomylić rozumienia listy z otwartym dla pętla.

Na przykład załóżmy użyj otwartej pętli aby otrzymać listę wszystkich wielokrotności trzech od 1 do 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]

Aby porównać te dwie rzeczy, zróbmy to samo, używając rozumienia listy:

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

Możesz również użyć list składanych z instrukcjami warunkowymi. Poniższy przykładowy kod wyświetla wszystkie liczby nieparzyste od 1 do 10:

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

Teraz przepiszmy powyższy kod za pomocą open dla pętla:

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

Związane z: Jak dołączyć listę w Pythonie

Lista składana akceptuje również zagnieżdżone instrukcje if:

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

Zajmuje również zagnieżdżone dla pętla:

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

Możesz także mieć zwykły zagnieżdżony dla pętla w zrozumieniu listy:

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

Możesz również manipulować łańcuchami za pomocą skryptów listowych w Pythonie. Rzućmy okiem na poniższe rozumienie licznika słów:

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

List składany może również akceptować funkcję, która wykonuje określoną operację. Wstawmy funkcję mnożnika, która pobiera liczby parzyste do listy składanej, aby zobaczyć, jak to działa:

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]

Nadal możesz napisać powyższy kod w jednej funkcji bez użycia zrozumienia. Ale zrozumienie listy jest przydatne, gdy trzeba wykonać kilka iteracji i umieścić każdą z nich w osobnych zmiennych.

Na przykład możesz wykonać inną operację na n i mieć do tego dedykowaną zmienną. Zmodyfikujmy powyższe rozumienie, aby generować liczby parzyste z nieparzystych:

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

Słownik i zestaw tłumaczeń

Oprócz rozumienia list, Python oferuje również słownik i funkcjonalność zestawu.

Spójrz na przykładowe rozumienie słownika poniżej, aby zobaczyć, jak to działa:

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}

Powyższy kod iteruje po liście liczb od 1 do 9 i czyni je kluczami. Następnie mówi Pythonowi, aby pomnożył każdy klucz przez dwa. Na koniec przedstawia wyniki tej operacji jako odpowiadające wartości dla każdego klucza w wynikowej tablicy.

Związane z: Jak działają tablice i listy w Pythonie

Zrozumienie zbiorowe jest trochę podobne do rozumienia listowego. Oto przykład zestawu rozumienia:

różnica między usb a i usb c
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Jednak w przeciwieństwie do rozumienia listy, rozumienie zestawu usuwa duplikaty:

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}

Możesz wypróbować powyższy kod, korzystając ze zrozumienia listy, aby zobaczyć, czym się różnią.

Czy możesz używać zrozumienia list za każdym razem?

Przyjrzeliśmy się różnym przykładom rozumienia list i sposobom ich użycia. Jednak, jak w przypadku każdej innej metody Pythona, przypadek użycia list składanych zależy od konkretnego problemu, który chcesz rozwiązać. Dlatego należy go używać tylko wtedy, gdy jest idealny do konkretnego problemu, który chcesz rozwiązać.

Jednym z celów rozumienia list jest uproszczenie kodu i uczynienie go bardziej czytelnym. Dlatego upewnij się, że unikasz złożoności, gdy sobie z tym radzisz. Na przykład, długie rozumienie Pythona może stać się skomplikowane do przeczytania. To łamie jego cel.

Udział Udział Ćwierkać E-mail Jak używać list składanych w Pythonie (i kiedy ich nie używać)

Oto wszystko, co musisz wiedzieć o korzystaniu z tej niesamowitej funkcji Pythona, która z dnia na dzień zwiększy Twoją produktywność i czytelność kodu.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Pyton
O autorze Idisou Omisola(94 opublikowane artykuły)

Idowu pasjonuje się każdą inteligentną technologią i produktywnością. W wolnych chwilach bawi się kodowaniem, a gdy się nudzi, przechodzi na szachownicę, ale od czasu do czasu uwielbia też oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi do nowoczesnych technologii motywuje go do pisania więcej.

Więcej od Idowu Omisola

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować