Cum să adăugați elemente la o listă în Python

Ce este

Listele Python sunt matrice dinamice. Puteți adăuga elemente la locul lor cu metode precumappend(),insert(), șiextend(), sau creați o nouă listă folosind concatenarea și despachetarea. Operațiunile de bază ale listei sunt rezumate în documentația metodelor de listă.

De ce contează

Alegerea modului corect de adăugare a elementelor afectează:

  • Lizibilitate: un singur articol vs mai multe, la sfârșit vs la o poziție.
  • Performanță: adăugarea este rapidă; introducerea articolelor lângă schimburile din față.
  • Corectitudine: mutarea unei liste în loc vs returnarea unei liste noi evită efectele secundare neintenționate.

Cum să-l folosești

1) Adăugați un articol la sfârșit(pe loc)

nums = [1, 2, 3]
nums.append(4)         # [1, 2, 3, 4]
# Note: append() returns None and mutates the list.

2) Introduceți într-o anumită poziție(pe loc)

LEGATE:Scrieți liste de înțelegeri în Python

letters = ['a', 'c', 'd']
letters.insert(1, 'b') # ['a', 'b', 'c', 'd']  inserts at index 1

3) Adăugați mai multe articole din orice iterabil(pe loc)

items = ['apple', 'banana']
items.extend(['cherry', 'date'])  # end of list
items.extend(('elderberry', 'fig'))  # tuples work too
items.extend({ 'g', 'h' })  # adds each element of the set (order arbitrary)

4) Concatenați pentru a crea o nouă listă(fără mutație)

base = [1, 2]
new_list = base + [3]       # base unchanged
# or unpacking syntax:
new_list2 = [*base, 3]
front_added = [0, *base]    # add to the front without mutating base

5) Copiați-apoi-modificați(model explicit fără mutații)

orig = [10, 20]
copy = orig.copy()
copy.append(30)    # orig is still [10, 20]

6) Adăugați în interiorul unei liste imbricate

matrix = [['abc', '2'], ['cds', '333'], ['efg']]
matrix[2].append('444')  # [['abc','2'], ['cds','333'], ['efg','444']]

7) Inserați mai multe elemente prin atribuirea secțiunii(pe loc)

nums = [1, 4, 5]
nums[1:1] = [2, 3]   # insert before index 1 → [1, 2, 3, 4, 5]
nums[len(nums):] = [6, 7]  # append many → [1, 2, 3, 4, 5, 6, 7]

8) Stenografie pentru extindere(pe loc)

nums = [1, 2]
nums += [3, 4]  # like extend; mutates the existing list

Limite și compromisuri

  • Mutație vs copie: append(),insert(),extend(), și+=mutați lista. Utilizare+, despachetarea ([*lst, x]), saucopy()-apoi-modifica pentru a evita efectele secundare.
  • Performanţă:
    • append(): amortizat O(1)
    • extend(k): Bine)
    • insert(i, x): O(n) (schimbă elemente)
    • lst + othersau[*lst, *other]: O(n + m) pentru a construi o nouă listă
  • Siguranța iterației:Nu adăugați sau eliminați dintr-o listă în timp ce iterați peste ea; construiți o nouă listă sau colectați mai întâi modificările.
  • Adăugați vs extindeți: append(obj)adaugă obiectul ca un singur element;extend(iterable)adaugă fiecare element al iterabilului.
  • Dicte și seturi:Extinderea cu un dict își repetă cheile; seturile sunt neordonate, deci ordinea rezultatelor nu este garantată.

Întrebări frecvente

  • Cum adaug in fata?Utilizareinsert(0, x)a muta, sau[x, *lst]pentru a crea o nouă listă.
  • De ceappend()return Niciunul?Mutează în loc; valoarea returnată semnalează că nu există nicio listă nouă de utilizat.
  • este+=diferit deextend()?Pentru liste,+=se comportă caextend()și modifică lista.
  • Cum adaug mai multe elemente la o poziție?Utilizați atribuirea feliei:lst[i:i] = iterable.
  • Pot adăuga în timp ce fac bucla?Evitați mutarea în timpul iterației; construiți în schimb o listă de rezultate, de exemplu,result = [*lst, extra]după buclă.

Related Posts