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. - Miksi
append()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.













