Spis treści:

Opanuj Pythona dzięki bezpłatnemu kursowi i stwórz bota Telegrama, parser sieciowy i stronę internetową od podstaw pod okiem eksperta z Sber.
Dowiedz się więcejMetody append() i extend() umożliwiają dodawanie nowych elementów do istniejącej listy, a także łączenie kilku list w jedną. W tym artykule omówimy ich zastosowanie na przykładach. Na koniec przedstawimy kilka mniej znanych metod, które również pomogą w rozszerzaniu list.
Funkcja append() w Pythonie: jak działa?
Metoda append() dodaje określony element na koniec listy. Podobnie jak wszystkie inne metody w Pythonie, musi być wywołana z operatorem kropki.
Metoda append() przyjmuje pojedynczy argument, element, który jest dodawany na koniec listy. Argument może być dowolnego typu: liczbami, ciągami znaków, słownikami i innymi obiektami. Metoda zwraca None, co oznacza, że nic nie zwraca.
Załóżmy, że mamy listę zawierającą ciągi znaków.
Aby dodać do niej nowy wiersz, „row”, musimy przekazać go jako argument do metody append(). Ponieważ ta metoda jest typu list, należy ją wywołać na obiekcie a, używając operatora kropki:
Nowy ciąg został pomyślnie dodany na końcu naszej listy. Wszystko działa zgodnie z oczekiwaniami.
Skomplikujmy problem, dodając kolejną listę składającą się z dwóch ciągów:
Zauważamy, że lista b, zawierająca elementy zagnieżdżone, została dołączona do elementów listy a. Co jednak, jeśli chcemy, aby elementy listy b zostały dodane pojedynczo? Na przykład tak:
Niestety, metoda append() nie pozwala na tę operację, ponieważ przyjmuje tylko jeden argument. Jeśli spróbujesz przekazać wiele obiektów rozdzielonych przecinkami, interpreter zgłosi wyjątek TypeError.
Na szczęście istnieje metoda extend(), która pozwala na dołączanie wielu elementów jednocześnie. Omówimy to w następnej sekcji.
Funkcja extend() w Pythonie: jak działa?
Metoda extend() przyjmuje jako argument obiekt iterowalny i dołącza jego elementy do istniejącej listy.
Funkcja extend() dodaje dodatkowe elementy na końcu listy, ale w przeciwieństwie do metody append() może przyjmować jako argumenty obiekty iterowalne, takie jak listy, krotki i ciągi znaków. W tym przypadku łączone listy mogą zawierać elementy różnych typów, co pozwala na przykład na łączenie ciągów znaków z liczbami lub liczb z krotkami.
Podobnie jak metoda append(), ta metoda również zwraca None.
Wróćmy do naszej listy a:
Załóżmy, że musimy połączyć ją z inną listą zawierającą ciągi znaków. Możemy przekazać zmienną b do metody extend(), co pozwoli nam uzyskać pożądany wynik:
Jak widać, każdy składnik b został indywidualnie uwzględniony w a.
Podobne operacje możemy zastosować do innych obiektów iterowalnych, takich jak krotki lub ciągi znaków.
Pamiętaj, że podczas korzystania z metody extend() ciągi znaków są konwertowane na listy znaków, a elementy są dodawane po jednym na raz. Na przykład ciąg znaków ‘man’ zostanie podzielony na pojedyncze znaki: ‘m’, ‘a’ i ‘n’.
Gdy do extend() przekazywany jest obiekt nieiterowalny, taki jak liczba, Python zgłasza błąd TypeError.
Komunikat o błędzie poprawnie wyjaśnia, że liczba nie jest obiektem iterowalnym.
Alternatywne metody dołączania elementów do listy
Aby ułatwić życie programistom Pythona, twórcy języka zaimplementowali kilka funkcji, które pozwalają na szybkie dołączanie elementów do list.
Operator + może przypominać znany znak matematyczny, ale w przypadku list działa podobnie do metody extend():
Wszystkie elementy z pierwszej listy zostały dodane na końcu listy Po drugie.
Krojenie. Alternatywną metodą dodawania elementów do listy jest nietypowe zastosowanie indeksowania. Wygląda to tak:
Może się to wydawać niecodzienne, ale w rzeczywistości jest skuteczne. Kiedy próbujemy uzyskać dostęp do elementów a, które nie występują, język automatycznie dodaje elementy z listy b, do której odwołujemy się po prawej stronie operatora przypisania.
O czym należy pamiętać
- Metoda append() pozwala dodać pojedynczy element do listy, niezależnie od tego, czy jest to liczba, ciąg znaków, czy nawet inna lista.
- Metoda extend() działa podobnie do append(), ale jej argumentem może być dowolny obiekt iterowalny, taki jak lista, krotka lub ciąg znaków. Elementy tego obiektu są dodawane do innej listy pojedynczo.
- Oprócz korzystania z metod append() i extend(), możesz dodawać elementy do listy za pomocą operatora + i wycinania. Oba te podejścia działają podobnie do extend(), dodając elementy z jednej listy do drugiej pojedynczo.
W naszym kanale Telegram czeka na Ciebie mnóstwo ekscytujących treści dotyczących kodowania. Nie przegap okazji do subskrypcji!
Przeczytaj również:
- Naucz się Pythona samodzielnie za darmo: plan krok po kroku
1. Określ swoje cele. Zanim zaczniesz się uczyć, zastanów się, jaki problem chcesz rozwiązać za pomocą Pythona. Może to być tworzenie stron internetowych, analiza danych, automatyzacja zadań lub tworzenie gier. Jasne zrozumienie swoich celów pomoże Ci skupić się na odpowiednich materiałach.
2. Znajdź wysokiej jakości zasoby. W Internecie dostępnych jest wiele darmowych kursów, samouczków wideo i podręczników. Przeglądaj platformy takie jak Coursera, edX, Codecademy i YouTube, aby znaleźć odpowiednie kursy.
3. Zacznij od podstaw. Opanuj podstawowe pojęcia języka, takie jak składnia, zmienne, typy danych, operatory i struktury sterujące. To fundament, na którym buduje się dalszą naukę.
4. Ćwicz. Regularna praktyka jest kluczem do skutecznego opanowania języka. Korzystaj z platform internetowych, takich jak LeetCode czy HackerRank, aby rozwiązywać problemy i brać udział w konkursach programistycznych.
5. Rozwijaj swoje projekty. Zastosuj zdobytą wiedzę w praktyce, tworząc własne projekty. Mogą to być proste skrypty, aplikacje, a nawet gry. Działania projektowe pomogą Ci pogłębić wiedzę i zrozumieć, jak stosować język w rzeczywistych warunkach.
6. Poznaj biblioteki i frameworki. Po opanowaniu podstaw zapoznaj się z popularnymi bibliotekami, takimi jak NumPy, Pandas i Matplotlib do analizy danych lub Flask i Django do tworzenia stron internetowych. Poszerzą one Twoje możliwości i pomogą Ci pogłębić wiedzę.
7. Uczestnicz w społecznościach. Dołącz do forów, grup w mediach społecznościowych i czatów poświęconych Pythonowi. Komunikacja z podobnie myślącymi i doświadczonymi programistami pomoże Ci zdobyć nową wiedzę, porady i wsparcie.
8. Nie bój się błędów. Błędy są naturalną częścią procesu uczenia się. Nie wahaj się zadawać pytań i szukać rozwiązań, gdy napotkasz trudności. To pomoże Ci nabrać pewności siebie i swoich umiejętności.
9. Stale się rozwijaj. Programowanie to dziedzina, która ciągle się zmienia. Śledź nowe trendy, czytaj artykuły, książki i blogi, aby być na bieżąco z aktualnymi technologiami i podejściami.
Postępując zgodnie z tym algorytmem, możesz skutecznie uczyć się Pythona samodzielnie i bez nakładów finansowych.
- „Zmieniłem karierę, zanim nadszedł moment żalu”: Dlaczego cyberpolicjant zdecydował się przejść do branży informatycznej.
- Rekurencja to technika programowania, w której funkcja wywołuje samą siebie w celu rozwiązania problemu. To podejście jest często stosowane do rozwiązywania problemów, które można rozbić na mniejsze, podobne podproblemy. Rozważmy, jak działa rekurencja na przykładzie języka Python.
Załóżmy, że musimy obliczyć silnię pewnej liczby. Silnia n (oznaczana jako n!) to iloczyn wszystkich dodatnich liczb całkowitych od 1 do n. Na przykład silnia liczby 5 to 5 × 4 × 3 × 2 × 1, czyli 120.
Możemy zdefiniować funkcję rekurencyjną do obliczenia silni w następujący sposób:
1. Zdefiniuj przypadek bazowy, który zakończy wywołania rekurencyjne. Zazwyczaj jest to warunek, w którym funkcja przestaje wywoływać samą siebie. W przypadku silni, przypadek bazowy będzie następujący: 0! = 1.
2. Zdefiniuj przypadek rekurencyjny, w którym funkcja wywołuje samą siebie z argumentem zmniejszającym się o jeden. Będzie to n! = n × (n — 1)!.
Teraz przyjrzyjmy się implementacji tego pomysłu w Pythonie:
«`python
def factorial(n):
if n == 0: # przypadek bazowy
return 1
else: # przypadek rekurencyjny
return n * factorial(n — 1)
«`Kiedy wywołamy `factorial(5)`, proces będzie wyglądał następująco:
— `factorial(5)` wywołuje `factorial(4)`
— `factorial(4)` wywołuje `factorial(3)`
— `factorial(3)` wywołuje `factorial(2)`
— `factorial(2)` wywołuje `factorial(1)`
— `factorial(1)` wywołuje `factorial(0)`W tym momencie, ponieważ n wynosi 0, wyzwalany jest przypadek bazowy, a funkcja zwraca 1. Następnie wyniki zaczynają być przekazywane wstecz przez wszystkie poprzednie wywołania:
— `factorial(1)` zwraca 1 × 1 = 1
— `factorial(2)` zwraca 2 × 1 = 2
— `factorial(3)` zwraca 3 × 2 = 6
— `factorial(4)` zwraca 4 × 6 = 24
— `factorial(5)` zwraca 5 × 24 = 120.Ostatecznym wynikiem wywołania `factorial(5)` jest zatem 120. Rekurencja pozwala na kompaktowe i wygodne rozwiązywanie problemów, ale ważne jest, aby mieć świadomość możliwych ograniczeń, takich jak głębokość rekurencji, która może prowadzić do błędów przepełnienia stosu, jeśli liczba wywołań rekurencyjnych jest zbyt duża.
