Terminowe wykorzystanie funkcji rozumienia list w Pythonie może ułatwić wykonywanie iteracyjnych operacji na listach. Oprócz tego, że jest pojedynczą linią, 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 zastosować go 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 rozumienie list w Pythonie i jak to działa?
Tworzenie listy elementów w Pythonie jest łatwe. Jednak zadanie to może stać się nieco uciążliwe, gdy trzeba wygenerować listę wartości lub elementów na podstawie operacji matematycznych lub na łańcuchach. Wtedy przydaje się rozumienie list.
Zaletą korzystania ze zrozumienia list jest to, że na jednej liście można wykonać kilka operacji.
W przeciwieństwie do tego tworzy nowe elementy i dołącza je do pustej listy, którą deklaruje automatycznie. Zamiast więc ręcznie tworzyć pustą listę i dołączać do niej rozszerzenie
dla pętli, funkcja rozumienia list w Pythonie pozwala zrobić to automatycznie, bez przejmowania się tym, jak przechodzi nowa lista.Termin „rozumienie list” pochodzi z faktu, że wszystkie operacje znajdują się na liście Pythona przypisanej do nazwanej zmiennej. Jak powiedzieliśmy wcześniej, umożliwia wykonywanie określonych operacji w jednej linii kodu. Następnie dołącza dane wyjściowe do nowej listy.
Ostatecznie możesz również użyć wyniku zrozumienia listy do innych celów. Dzieje się tak, ponieważ zestawia wyrażenia w oddzielnych zmiennych. Więc możesz się do nich odwołać później.
Na przykład możesz być skrobanie strony internetowej z BeautifulSoup. Załóżmy, że zamierzasz uzyskać nazwy wszystkich produktó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 przedmiotów i ich cen i umieszczenie obu w oddzielnych kolumnach. Jednak w takim przypadku użycie funkcji list składanych zapewnia, że zebrane dane znajdują się w dedykowanych zmiennych. Następnie można później przekonwertować takie zmienne na ramkę DataFrame w Pythonie.
Spójrz na poniższy przykład:
Produkty = [i.text for i in bs.find_all ('tagi nazw')]
Cena = [i.text for i in bs.find_all ('tagi cen')]
Po uzyskaniu zapętlonych zmiennych możesz umieścić je w oddzielnych kolumnach w DataFrame za pomocą Pandas Pythona.
Jak utworzyć i używać rozumienia listy w Pythonie
Plik dla pętla jest niezbędnym iteratorem w zrozumieniu list. Generalnie lista składana w Pythonie ma następujący format:
CompressionVariable = [wyrażenie dla pozycji na liście]
Druk Zrozumienie Zmienna 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 niech użyj otwartej pętli aby otrzymać listę wszystkich wielokrotności trzech od 1 do 30:
myList = []
dla i w zakresie (1, 11):
myList.append (i * 3)
print (myList)
Wyjście: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Aby porównać te dwie rzeczy, zróbmy to samo, używając rozumienia list:
multiplesOf3 = [i * 3 for i in range (1, 11)]
print (multiplesOf3)
Wyjście = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]
Możesz używać list składanych również z instrukcjami warunkowymi. Poniższy przykładowy kod wypisuje wszystkie liczby nieparzyste od 1 do 10:
oddNumbers = [i dla i w zakresie (1, 11) jeśli nie i% 2 == 2]
print (nieparzyste)
Wyjście = [1, 3, 5, 7, 9]
Teraz przepiszmy również powyższy kod, używając pliku open dla pętla:
myList = []
dla i w zakresie (1, 11):
jeśli nie i% 2 == 0:
myList.append (i)
print (myList)
Wyjście: [1, 3, 5, 7, 9]
Związane z: Jak dołączyć listę w Pythonie
Zrozumienie listy akceptuje również zagnieżdżone instrukcje if:
oddNumbers = [i dla i w zakresie (1, 11), jeśli nie i% 2 == 0, jeśli i <4]
print (nieparzyste)
Wyjście: [1, 3]
Zajmuje również zagnieżdżony plik dla pętla:
someNums = [[i * 2 for i in range (1, 3)] for _ in range (4)]
print (someNums)
Możesz również mieć zwykły zagnieżdżony plik 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ć ciągami znaków za pomocą funkcji rozumienia list w Pythonie. Rzućmy okiem na rozumienie licznika słów poniżej:
word = ["To jest samouczek dotyczący rozumienia list w języku Python"]
wordCounter = [i.count ('') + 1 za i w słowie]
print (wordCounter)
Wyjście: 7
Zrozumienie listy może również akceptować funkcję, która wykonuje określoną operację. Wstawmy funkcję mnożnika, która pobiera liczby parzyste w liście, aby zobaczyć, jak to działa:
Liczby = [4, 7, 8, 15, 17, 10]
def mnożnik (n):
wielokrotność = n * 2
zwraca wiele
multipleEven = [mnożnik (i) for i in Numbers, jeśli i% 2 == 0]
print (multipleEven)
Produkcja: [8, 16, 20]
Nadal możesz napisać powyższy kod w jednej funkcji bez korzystania ze zrozumienia. Zrozumienie listy jest jednak 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ć dla niego dedykowaną zmienną. Zmodyfikujmy powyższe rozumienie, aby wygenerować liczby parzyste z nieparzystych:
multipleEvenFromOdds = [mnożnik (i) for i in Numbers, jeśli nie i% 2 == 0]
print (multipleEvenFromOdds)
Produkcja: [14, 30, 34]
Słownik i zbiór pojęć
Oprócz rozumienia list, Python oferuje również słownik i zestaw funkcji rozumienia.
Spójrz na przykładowe rozumienie słownikowe poniżej, aby zobaczyć, jak to działa:
odpowiadający = {i: i * 2 dla i w zakresie (10), jeśli nie i% 2 == 0}
print (corr)
Wyjście: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}
Powyższy kod przechodzi przez listę 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 odpowiednie wartości dla każdego klucza w wynikowej tablicy.
Związane z: Jak tablice i listy działają w Pythonie
Zrozumienie zbioru jest trochę podobne do rozumienia listy. Oto przykład zestawu pojmowania:
liczby = {i ** (2) dla i w zakresie (10), jeśli i% 4 == 0}
print (liczby)
Wyjście: {0, 16, 64}
Jednak w przeciwieństwie do rozumienia list, zestaw ze zrozumieniem usuwa duplikaty:
nums = {i for i in range (20) if i% 2 == 1 for k in range (10) if k% 2 == 1}
print (liczba)
Wyjście: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}
Możesz wypróbować powyższy kod, korzystając z funkcji list, aby zobaczyć, czym się różnią.
Czy za każdym razem możesz korzystać ze rozumienia listy?
Przyjrzeliśmy się różnym przykładom rozumienia list i tym, gdzie można ich użyć. Jednak, podobnie jak w przypadku każdej innej metody w Pythonie, przypadek użycia rozumienia listy zależy od konkretnego problemu, który chcesz rozwiązać. Dlatego powinieneś go używać tylko wtedy, gdy jest idealny dla konkretnego problemu, który chcesz rozwiązać.
Jednym z celów zrozumienia list jest uproszczenie kodu i uczynienie go bardziej czytelnym. Dlatego upewnij się, że unikasz złożoności, gdy sobie z tym poradzisz. Na przykład długie rozumienie języka Python może być trudne do odczytania. To mija się z celem.
Oto wszystko, co musisz wiedzieć o korzystaniu z tej niesamowitej funkcji Pythona, która z dnia na dzień zwiększy produktywność i czytelność kodu.
- Programowanie
- Pyton
Idowu jest pasjonatem wszystkiego, co inteligentne technologie i produktywność. W wolnym czasie bawi się kodowaniem, nudzi się szachownicą, ale uwielbia też od czasu do czasu oderwać się od rutyny. Jego pasja do pokazywania ludziom drogi wokół nowoczesnych technologii motywuje go do pisania więcej.
Zapisz się do naszego newslettera
Dołącz do naszego biuletynu, aby otrzymywać wskazówki techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!
Jeszcze jeden krok…!
Potwierdź swój adres e-mail w wiadomości e-mail, którą właśnie wysłaliśmy.