Kuinka lisätä elementtejä luetteloon Pythonissa

Mitä se on

Python -luettelot ovat dynaamisia taulukkoja. Voit lisätä kohteita paikoilleen menetelmilläappend()-insert()jaextend(), tai luo uusi luettelo käyttämällä ketjuttamista ja purkamista. Ydinluettelotoiminnot on esitetty yhteenvetona luettelomenetelmien dokumentaatiossa.

Miksi sillä on merkitystä

Oikean tavan valitseminen elementtien lisäämiseen:

  • Luettavuus: yksi esine vs. monet, lopussa vs.
  • Suorituskyky: liite on nopea; asettamalla etusiirtotuotteiden lähelle.
  • Oikeudenmukaisuus: Uuden luettelon palauttaminen luettelon mutatointi välttää tahattomia sivuvaikutuksia.

Kuinka käyttää sitä

1) Lisää yksi kohde päähän(paikallaan)

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

2) Aseta tiettyyn sijaintiin(paikallaan)

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

3) Lisää useita kohteita mistä tahansa iterableista(paikallaan)

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) Yhdistä uuden luettelon luominen(Ei mutaatiota)

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) Kopioin-sille-modify(Explittic NO-mutaatiokuvio)

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

6) Lisää sisäkkäinen luettelo

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

7) Aseta useita kohteita viipaleiden avulla(paikallaan)

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) Laajennus(paikallaan)

Ehdotettu lukeminen:Block -sivuelementit Brave Android -sovelluksessa, joka on samanlainen kuin työpöytä

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

Rajat ja kompromissit

  • Mutaatio vs Kopio: append()-insert()-extend()ja+=mutatoi luettelo. Käyttää+, pakkaaminen ([*lst, x]) taicopy()-Tätä modifioita sivuvaikutusten välttämiseksi.
  • Suorituskyky:
    • append(): poistot O (1)
    • extend(k): O(k)
    • insert(i, x): O (n) (siirtoelementit)
    • lst + othertai[*lst, *other]: O (n + m) uuden luettelon rakentamiseksi
  • Iteraation turvallisuus:Älä lisää tai poista luettelosta, kun toistetaan sen yli; Rakenna uusi luettelo tai kerää muutokset ensin.
  • Liite vs laajentaa: append(obj)lisää objektin yhtenä elementtinä;extend(iterable)Lisää jokaisen iteroitavan elementin.
  • Diktit ja sarjat:Laajentaminen sanalla toistaa sen avaimet; Sarjat ovat järjestäytymättömiä, joten tulostilausta ei taata.

Faqit

  • Kuinka voin lisätä eteen?Käyttääinsert(0, x)mutaatiota tai[x, *lst]Uuden luettelon luominen.
  • Miksiappend()Palauta kukaan?Se mutatoi paikallaan; Palautusarvosignaalit, joita ei käytetä uutta luetteloa.
  • On+=erilainen kuinextend()?Luettelot,+=käyttäytyy kutenextend()ja mutatoi luetteloa.
  • Kuinka voin lisätä useita elementtejä asemaan?Käytä viipaleen määritystä:lst[i:i] = iterable.
  • Voinko lisätä silmukoinnin aikana?Vältä mutaatiota iteraation aikana; Rakenna tulosluettelo sen sijaan, esim.result = [*lst, extra]Silmukan jälkeen.

Related Posts