🔹 Bine ai venit

Dacă doriți să învățați cum să lucrați .append() și .extend() și înțelegeți diferențele lor, apoi ați ajuns la locul potrivit. Sunt metode de listă puternice pe care le veți folosi cu siguranță în proiectele dvs. Python.

În acest articol, veți afla:

  • Cum și când să utilizați .append() metodă.
  • Cum și când să utilizați .extend() metodă.
  • Principalele lor diferențe.

Sa incepem. ✨

🔸 Atașați

Să vedem cum .append() metoda funcționează în culise.

Cazuri de utilizare

Ar trebui să utilizați această metodă atunci când doriți adăugați un singur element la final a unei liste.

💡 Sfaturi: Puteți adăuga elemente de orice tip de date, deoarece listele pot avea elemente de diferite tipuri de date.

Lista Python Anexa VS Lista Python Extinde Diferenta

Sintaxă și argumente

Pentru a apela .append() , va trebui să utilizați această sintaxă:

1611725166 994 Lista Python Anexa VS Lista Python Extinde Diferenta

De la stanga la dreapta:

  • Lista care va fi modificată. Aceasta este de obicei o variabilă care face referire la o listă.
  • Un punct, urmat de numele metodei .append().
  • În paranteze, elementul care va fi adăugat la sfârșitul listei.

💡 Sfaturi: Punctul este foarte important. Aceasta se numește „notație punct”. Punctul spune practic „apelați această metodă pe această listă specială”, astfel încât efectul metodei va fi aplicat listei care se află înainte de punct.

Exemple

Iată un exemplu de utilizare .append():

# Define the list
>>> nums = [1, 2, 3, 4]

# Add the integer 5 to the end of the existing list
>>> nums.append(5)

# See the updated value of the list
>>> nums
[1, 2, 3, 4, 5]

💡 Sfaturi: Când folosești .append() lista originală este modificată. Metoda nu creează o copie a listei – mută lista originală din memorie.

Să ne prefacem că efectuăm o cercetare și că vrem să analizăm datele colectate folosind Python. Trebuie să adăugăm o nouă măsurătoare la lista de valori existentă.

Cum o facem? Noi folosim .append() metodă!

O puteți vedea chiar aici:

# Existing list
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Add the float (decimal number) to the end of the existing list
>>> nums.append(7.34)

# See the updated value of the list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 7.34]

Echivalentă cu…

Dacă sunteți familiarizat cu felierea de șiruri, liste sau tupluri, ce .append() într-adevăr în culise este echivalent cu:

a[len(a):] = [x]

Cu acest exemplu, puteți vedea că sunt echivalente.

Folosind .append():

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums.append(4.52)
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 4.52]

Folosind felierea listei:

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums[len(nums):] = [4.52]
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 4.52]

Adăugarea unei secvențe

Acum, ce părere aveți despre acest exemplu? Ce crezi că va fi produs?

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> nums.append([5.67, 7.67, 3.44])
>>> nums
# OUTPUT?

Sunteți gata? Acesta va fi rezultatul:

[5.6, 7.44, 6.75, 4.56, 2.3, [5.67, 7.67, 3.44]]

S-ar putea să vă întrebați, de ce a fost adăugată lista completă ca un singur articol? Este pentru că .append() metoda adaugă întregul articol la sfârșitul listei. Dacă elementul este o secvență, cum ar fi o listă, un dicționar sau un tuplu, întreaga secvență va fi adăugată ca un singur element din lista existentă.

Aici avem un alt exemplu (mai jos). În acest caz, elementul este un tuplu și este adăugat ca un singur element al listei, nu ca elemente individuale:

>>> names = ["Lulu", "Nora", "Gino", "Bryan"]
>>> names.append(("Emily", "John"))
>>> names
['Lulu', 'Nora', 'Gino', 'Bryan', ('Emily', 'John')]

🔹 Extindeți

Acum să ne scufundăm în funcționalitatea .extend() metodă.

Cazuri de utilizare

Ar trebui să utilizați această metodă dacă aveți nevoie atașați mai multe elemente la o listă ca elemente individuale.

Permiteți-mi să ilustrez importanța acestei metode cu un prieten familiar pe care tocmai l-ați învățat: .append() metodă. Pe baza a ceea ce ați învățat până acum, dacă am dori să adăugăm mai multe individual elemente într-o listă folosind .append(), ar trebui să folosim .append() de mai multe ori, așa:

# List that we want to modify
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Appending the items
>>> nums.append(2.3)
>>> nums.append(9.6)
>>> nums.append(4.564)
>>> nums.append(7.56)

# Updated list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Sunt sigur că probabil vă gândiți că acest lucru nu ar fi foarte eficient, nu? Ce se întâmplă dacă trebuie să adaug mii sau milioane de valori? Nu pot scrie mii sau milioane de rânduri pentru această sarcină simplă. Asta ar dura pentru totdeauna!

Deci, să vedem o alternativă. Putem stoca valorile pe care dorim să le adăugăm într-o listă separată și apoi să folosim o buclă for pentru a apela .append() de câte ori este nevoie:

# List that we want to modify
>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]

# Values that we want to add
>>> new_values = [2.3, 9.6, 4.564, 7.56]

# For loop that is going to append the value
>>> for num in new_values:
	nums.append(num)

# Updated value of the list
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Acest lucru este mai eficient, nu? Scriem doar câteva rânduri. Dar există un mod și mai eficient, mai ușor de citit și mai compact de a atinge același scop: .extend()!

>>> nums = [5.6, 7.44, 6.75, 4.56, 2.3]
>>> new_values = [2.3, 9.6, 4.564, 7.56]

# This is where the magic occurs! No more for loops
>>> nums.extend(new_values)

# The list was updated with individual values
>>> nums
[5.6, 7.44, 6.75, 4.56, 2.3, 2.3, 9.6, 4.564, 7.56]

Să vedem cum funcționează această metodă în culise.

Sintaxă și argumente

Pentru a apela .extend() , va trebui să utilizați această sintaxă:

1611725166 702 Lista Python Anexa VS Lista Python Extinde Diferenta

De la stanga la dreapta:

  • Lista care va fi modificată. Aceasta este de obicei o variabilă care se referă la listă.
  • Un punct . (Până acum, totul este exact la fel ca înainte).
  • Numele metodei extend. (Acum lucrurile încep să se schimbe …).
  • Între paranteze, un iterabil (listă, tuplu, dicționar, set sau șir) care conține elementele care vor fi adăugate ca elemente individuale ale listei.

💡 Sfaturi: In conformitate cu Documentare Python, un iterabil este definit ca „un obiect capabil să-și întoarcă membrii pe rând”. Iterabilele pot fi folosite într-o buclă for și pentru că își returnează elementele pe rând, putem „face ceva” cu fiecare dintre ele, câte una pe iterație.

În spatele scenelor

Să vedem cum .extend() funcționează în culise. Aici avem un exemplu:

# List that will be modified
>>> a = [1, 2, 3, 4]

# Sequence of values that we want to add to the list a
>>> b = [5, 6, 7]

# Calling .extend()
>>> a.extend(b)

# See the updated list. Now the list a has the values 5, 6, and 7
>>> a
[1, 2, 3, 4, 5, 6, 7]

Vă puteți gândi .extend() ca metodă care adaugă elementele individuale ale iterabilului în aceeași ordine în care apar.

În acest caz, avem o listă a = [1, 2, 3, 4] așa cum este ilustrat în diagrama de mai jos. Avem și o listă b = [5, 6, 7] care conține secvența de valori pe care dorim să o adăugăm. Metoda ia fiecare element de b și îl adaugă la listă a în aceeași ordine.

1611725166 30 Lista Python Anexa VS Lista Python Extinde Diferenta
Pasul 1. Primul element este atașat.
1611725166 379 Lista Python Anexa VS Lista Python Extinde Diferenta
Pasul 2. Al doilea element anexat.
1611725166 693 Lista Python Anexa VS Lista Python Extinde Diferenta
Pasul 3. Al treilea element anexat

După finalizarea acestui proces, avem lista actualizată a și putem lucra cu valorile ca elemente individuale ale a.

1611725166 17 Lista Python Anexa VS Lista Python Extinde Diferenta

💡 Sfaturi: Lista b folosit pentru a extinde lista a rămâne intact după acest proces. Puteți lucra cu acesta după apelul către .extend(). Iată dovada:

>>> a = [1, 2, 3, 4]
>>> b = [5, 6, 7]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6, 7]

# List b is intact!
>>> b
[5, 6, 7]

Exemple

Ați putea fi curios să știți cum .extend() metoda funcționează atunci când treceți diferite tipuri de iterabile. Să vedem cum în următoarele exemple:

Pentru tupluri:
Procesul funcționează exact la fel dacă treceți un tuplu. Elementele individuale ale tuplului sunt atașate unul câte unul în ordinea în care apar.

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be added (the iterable is a tuple!)
>>> b = (1, 2, 3, 4)

# Method call
>>> a.extend(b)

# The value of the list a was updated
>>> a
[1, 2, 3, 4, 1, 2, 3, 4]

Pentru seturi:
Același lucru se întâmplă dacă treceți un set. Elementele setului sunt atașate unul câte unul.

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended (the iterable is a set!)
>>> c = {5, 6, 7}

# Method call
>>> a.extend(c)

# The value of a was updated
>>> a
[1, 2, 3, 4, 5, 6, 7]

Pentru corzi:
Corzile funcționează puțin diferit de .extend() metodă. Fiecare caracter al șirului este considerat un „element”, astfel încât caracterele sunt atașate unul câte unul în ordinea în care apar în șir.

# List that will be extended
>>> a = ["a", "b", "c"]

# String that will be used to extend the list
>>> b = "Hello, World!"

# Method call
>>> a.extend(b)

# The value of a was updated
>>> a
['a', 'b', 'c', 'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']

Pentru dicționare:
Dicționarele au un comportament special atunci când le transmiteți ca argumente .extend(). În acest caz, chei din dicționar sunt anexate unul câte unul. Valorile perechilor cheie-valoare corespunzătoare nu sunt adăugate.

În acest exemplu (mai jos), tastele sunt „d”, „e” și „f”. Aceste valori sunt anexate la listă a.

# List that will be extended
>>> a = ["a", "b", "c"]

# Dictionary that will be used to extend the list
>>> b = {"d": 5, "e": 6, "f": 7}

# Method call
>>> a.extend(b)

# The value of a was updated
>>> a
['a', 'b', 'c', 'd', 'e', 'f']

Echivalentă cu…

Ce .extend() does este echivalent cu a[len(a):] = iterable. Aici avem un exemplu pentru a ilustra că acestea sunt echivalente:

Folosind .extend():

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended
>>> b = (6, 7, 8)

# Method call
>>> a.extend(b)

# The list was updated
>>> a
[1, 2, 3, 4, 6, 7, 8]

Folosind felierea listei:

# List that will be extended
>>> a = [1, 2, 3, 4]

# Values that will be appended
>>> b = (6, 7, 8)

# Assignment statement. Assign the iterable b as the final portion of the list a
>>> a[len(a):] = b

# The value of a was updated
>>> a
[1, 2, 3, 4, 6, 7, 8]

Rezultatul este același, dar folosind .extend() este mult mai lizibil și mai compact, nu? Python oferă cu adevărat instrumente uimitoare pentru a ne îmbunătăți fluxul de lucru.

🔸 Rezumatul diferențelor lor

Acum, că știi să lucrezi cu .append() și .extend(), să vedem un rezumat al diferențelor lor cheie:

  • Efect: .append() adaugă un singur element la sfârșitul listei în timp ce .extend() poate adăuga mai multe elemente individuale la sfârșitul listei.
  • Argument: .append() ia un singur element ca argument în timp ce .extend() ia un iterabil ca argument (listă, tuplu, dicționare, seturi, șiruri).

Sper cu adevărat că ți-a plăcut articolul meu și l-ai găsit util. Acum puteți lucra cu .append() și .extend() în proiectele dvs. Python. Vezi cursurile mele online. Urmează-mă pe mine Stare de nervozitate. ⭐️