
Harry James
0
4382
1049
Być może słyszałeś o zrozumieniu listy Pythona. Może to nawet coś, czego używałeś bez prawdziwego zrozumienia. Teraz jest czas na naukę, ponieważ omawiamy wszystko, co musisz wiedzieć o zrozumieniu listy w Pythonie.
Zanim zaczniesz, warto odświeżyć się na temat działania tablic i list w Pythonie. Jak tablice i listy działają w Pythonie. Jak tablice i listy działają w Pythonie. Tablice i listy są jednymi z najbardziej przydatnych struktur danych w programowaniu - chociaż niewiele osób z nich korzysta. do ich pełnego potencjału. i jak korzystać ze słowników Python Słownik Python: jak go używać do pisania lepszego kodu Słownik Python: jak go używać do pisania lepszego kodu Pomyśl o słowniku Python jako nieuporządkowanym zestawie par klucz-wartość. W tym artykule wprowadzamy Cię do pracy z nimi i używania ich do ulepszania kodu Pythona. .
Co to jest lista list w języku Python?
Zrozumienie listy brzmi skomplikowanie, ale tak naprawdę nie jest. W Pythonie jest to po prostu szybki sposób na filtrowanie lub zawężanie listy na podstawie niektórych kryteriów.
Oszczędza to konieczności pisania kilku wierszy kodu (zwłaszcza jeśli masz już pętlę) i utrzymuje czytelność kodu.
Bądź jednak ostrożny, ponieważ zrozumienie listy nie zawsze jest odpowiedzią. Łatwo jest dać się ponieść emocjom i pisać skomplikowane, trudne do odczytania wypowiedzi. Czasami pisanie większej ilości kodu jest lepsze, szczególnie jeśli pomaga to w czytelności. Trzymaj się prostych zadań i trzymaj kod za jedną odpowiedzialność.
Jak korzystać ze zrozumień list w Pythonie
Uwaga: Wszystkie te przykłady używają Pythona 3.6. Jeśli nie masz pewności co do różnic między Python 3 a Python 2, zapoznaj się z często zadawanymi pytaniami dotyczącymi Python Najczęściej zadawane pytania dotyczące programowania w Python Najczęściej zadawane pytania dotyczące programowania w Python W tym artykule przeprowadzimy Cię przez wszystko, co musisz wiedzieć o Pythonie jako początkujący. , w którym zajmujemy się tym pytaniem i nie tylko.
Rozważ ten fragment kodu, który kopiuje tablicę i zamienia każdą literę w tej tablicy na wielkie litery. Robi to, zapętlając każdy element w tablicy:
litery = ['a', 'b', 'c', 'd'] drukuj (litery) górne litery = [] dla litery w literach: wynik = litera.upper () górne_listy.append (wynik) drukuj (górne_lettery)
Oto ta sama dokładna logika, z wyjątkiem tego, że jest wykonywana w jednym wierszu kodu przy użyciu podstawowego zrozumienia listy w języku Python:
litery = [„a”, „b”, „c”, „d”] drukuj (litery) górne litery = [x. górne () dla x liter] drukuj (górne litery)
Jak widać, wynik jest dokładnie taki sam, ale proces wymaga znacznie więcej kodu bez zrozumienia listy.
Przełammy ten prosty przykład.
Ten przykład tworzy listę o nazwie listy. Przechowuje małe litery “za”, “b”, “do”, i “re”. Załóżmy, że chcesz, aby wszystkie te elementy listy były pisane wielkimi literami? Cóż, bez zrozumienia listy, musisz utworzyć nową listę do przechowywania wyniku (tzw Upper_letters), zapętl wszystkie elementy w listy listy, przekonwertuj każdą literę (i zapisz ją w wynik-opcjonalne, ale dobre praktyki), a następnie dodaj wielką literę do nowej listy. Co za dużo pracy!
Zrozumienie listy tutaj jest prawie dokładnie równoważne z alternatywną pętlą. To skutecznie mówi “dla każdej litery na liście liter przekonwertuj je na wielkie litery i zwróć wynik jako nową listę.”
Zrozumienie listy może działać tylko na listach i musi zwrócić nową listę. Zagłębmy się głębiej.
Zrozumienie listy składa się z trzech części (omówimy trzecią część poniżej). Wyrażenia na liście muszą zaczynać się i kończyć nawiasami kwadratowymi ([ i ]). W ten sposób został zaprojektowany i informuje Python, że będziesz pracować z listą.
W nawiasach kwadratowych musisz zacząć od wyniku. To właśnie chcesz zrobić z każdym elementem listy.
W powyższym przykładzie poniższy kod konwertuje każdy element (do którego odnosi się nazwa zmiennej x) do wielkich liter za pomocą górny() Metoda, która jest częścią biblioteki podstawowej Python:
[x.upper () # nie będzie działać, tylko połowa zrozumienia w tym momencie
Następnie musisz powiedzieć Pythonowi, na której liście ma pracować, i przypisać każdy poszczególny element do zmiennej. To jest dokładnie to samo co pętla for w przykładzie z długim nawinięciem:
dla x literami
Za każdym razem, gdy pętla przechodzi przez listę, wartość x zmieni się na dowolny obecny element. Zacznie się jako “za”, i wtedy “b”, i tak dalej.
Jeśli złożysz wszystko razem (i przypiszesz do zmiennej o nazwie Upper_letters), skończysz:
upper_letters = [x.upper () dla x liter]
Teraz, Upper_letters będzie zawierać listę wielkich liter, zaczynając od “ZA”, i wtedy “b” i tak dalej.
Trzecia część zrozumienia listy w Pythonie
Jak wspomniano powyżej, istnieje trzecia część do zrozumienia listy.
Po wykonaniu powyższych dwóch kroków możesz dołączyć warunek opcjonalny. To jest jak używanie Jeśli oświadczenie do powiedzenia “uczyń mnie nową listą, opartą na tej starej liście, ale zawieraj tylko elementy spełniające moje kryteria”.
Oto jak to wygląda:
wiek = [1, 34, 5, 7, 3, 57, 356] print (wiek) old_ages = [x dla x w wieku, jeśli x> 10] print (old_ages)
W tym przykładzie użyto nowej listy o nazwie wieczność. The old_ages lista jest składana przy użyciu listy. The Jeśli warunek na końcu oznacza, że tylko elementy listy spełniające kryteria zostaną wstawione do nowej listy. W tym przykładzie dozwolony jest każdy wiek większy niż dziesięć.
Kiedy nie używać wyrażeń z listy Python
Zrozumienie listy jest niesamowite, kiedy już się na tym znasz, ale nie jest przydatne w każdych okolicznościach. Prawdopodobnie nie powinieneś go używać, gdy potrzebujesz więcej niż jednego warunku:
old_ages = [x dla x w wieku, jeśli x> 10 i x < 100 and x is not None]
Ten kod działa, ale zaczyna być długi i mylący. Podobnie, coś więcej niż proste wywołanie funkcji może nie działać. W tym przykładzie wystąpi błąd:
litery = ['a', 'b', 'c', 'd', 2] print (litery) górne litery = [x.upper () dla x liter] drukuj (górne litery)
Jest to całkowicie poprawny kod, ale ponieważ nie można pisać wielkimi literami, nie zadziała. Jest to jeden przypadek, w którym dłuższa pętla jest rzeczywiście preferowana, ponieważ będziesz w stanie wykonać obsługę wyjątków:
litery = ['a', 'b', 'c', 'd', 1] print (litery) górne litery = [] dla litery w literach: spróbuj: wynik = list.upper () górne_letki.zapisz (wynik) oprócz AttributeError: pass # nie rób nic drukuj (górne litery)
Zacznij korzystać ze zrozumiałych list w języku Python
Teraz, gdy wiesz, jak łatwe jest zrozumienie listy w Pythonie, nie ma powodu, aby z niej nie korzystać. Pamiętaj tylko, aby zachować prostotę i przede wszystkim wziąć pod uwagę czytelność.
Być może będziesz kontrolować Arduino za pomocą Pythona Jak programować i kontrolować Arduino za pomocą Pythona Jak programować i kontrolować Arduino za pomocą Pythona Niestety nie można bezpośrednio zaprogramować Arduino w Pythonie, ale możesz sterować nim przez USB za pomocą Pythona program. Oto jak. , a co z kamerą sieciową DIY Python Kamera sieciowa DIY Pan and Tilt Network Security Cam z Raspberry Pi DIY Kamera sieciowa Pan and Tilt Network Security z Raspberry Pi Dowiedz się, jak zdalnie wyświetlać kamerę bezpieczeństwa Pan & Tilt za pomocą Raspberry Pi. Ten projekt można ukończyć rano tylko z najprostszych części. ?