Jak połączyć dwie listy w Pythonie (łączenie i rozszerzanie)
Poznaj najlepsze sposoby scalania i łączenia dwóch list w Pythonie. Porównaj operator plus, metodę rozszerzenia, rozpakowywanie listy i opcje łańcucha.
Przegląd
Łączenie zestawów danych list jest częstą operacją podczas agregowania wyników, przetwarzania partii danych lub dołączania elementów do kolekcji. Python udostępnia kilka sposobów łączenia list, w zależności od tego, czy chcesz zmodyfikować listę w miejscu, czy utworzyć nową listę.
Aby utworzyć zupełnie nową listę poprzez połączenie dwóch istniejących, najprostszą metodą jest użycie operatora łączenia „+” (np. „lista3 = lista1 + lista2”). Alternatywnie, wPython 3.5+ możesz użyć składni rozpakowywania listy `[*list1, *list2]`, która jest bardzo wyrazista i pozwala na łatwe wprowadzanie dodatkowych elementów w dowolnym miejscu podczas tworzenia listy.
Jeśli chcesz lokalnie zmodyfikować istniejącą listę, dodając elementy z innej listy, najskuteczniejszym wyborem będzie metoda `.extend()`. Pozwala to uniknąć przydzielania pamięci dla nowej listy i bezpośrednio modyfikuje listę docelową. Aby efektywnie korzystać z pamięci podczas przeglądania połączonych list bez duplikowania danych w pamięci, można użyć metody `itertools.chain()`.
Dane wyjściowe kodu i wykonania
Ten skrypt demonstruje łączenie dwóch list przy użyciu operatorów, technik rozszerzania i rozpakowywania.
list_a = [1, 2, 3]
list_b = [4, 5, 6]
# 1. Plus operator (creates a new list)
merged_plus = list_a + list_b
print("Using + operator:", merged_plus)
# 2. Unpacking operator (creates a new list)
merged_unpack = [*list_a, *list_b]
print("Using unpacking:", merged_unpack)
# 3. Extend method (modifies list_a in-place)
list_a.extend(list_b)
print("After extending list_a:", list_a)Using + operator: [1, 2, 3, 4, 5, 6]
Using unpacking: [1, 2, 3, 4, 5, 6]
After extending list_a: [1, 2, 3, 4, 5, 6]Wdrażanie krok po kroku
- Użyj operatora +, aby scalić listy i zwrócić nową połączoną listę.
- Wywołaj funkcję list_a.extend(list_b), aby dołączyć wszystkie elementy listy_b bezpośrednio do listy_a.
- Użyj operatora rozpakowywania gwiazdki [*list_a, *list_b], aby skonstruować listę z elementów obu.
Często zadawane pytania
Jaka jest różnica między append() i Extend()?
append() dodaje cały argument lista jako pojedynczy zagnieżdżony element, natomiast Extend() rozpakowuje argument lista i dodaje każdy element osobno.
Jak scalić listy i usunąć duplikaty?
Możesz je połączyć, a następnie rzutować wynik na zbiór lub najpierw przekonwertować je na zestawy: list(set(list_a) | set(list_b)).
Powiązane tematy
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Jak sprawdzić, czy lista jest pusta w PythoniePoznaj najbardziej Pythoniczne sposoby sprawdzania, czy lista w Pythonie jest pusta. Porównaj niejawne kontrole logiczne z porównaniami długości.
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Listy Pythona
Dowiedz się wszystkiego o listach w Pythonie. Odkryj, jak tworzyć, wycinać, modyfikować i iterować po tablicach natywnie w języku Python.
Ściągawka dotycząca metod ciągów w Pythonie
Kompletny przewodnik dotyczący manipulacji ciągami znaków w języku Python. Opanuj formatowanie, wyszukiwanie, dzielenie, zastępowanie i sprawdzanie właściwości ciągów.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.