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.

Wypróbuj to rozwiązanie w Edytorze

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.

merge_lists.py
Spróbuj w Edytorze
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)
Wyjście terminala
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.