Kas tai yra
Python sąrašai yra dinaminiai masyvai. Galite pridėti elementus į vietą naudodami tokius metodus kaipappend(),insert(), irextend(), arba sukurkite naują sąrašą naudodami sujungimą ir išpakavimą. Pagrindinės sąrašo operacijos yra apibendrintos sąrašo metodų dokumentacijoje.
Kodėl tai svarbu
Tinkamo elementų pridėjimo būdo pasirinkimas turi įtakos:
- Skaitomumas: vienas elementas prieš daugelį, pabaigoje ir pozicijoje.
- Našumas: priedas yra greitas; įkišant šalia priekio pakeičiami daiktai.
- Teisingumas: keičiant sąrašą vietoje ir grąžinant naują sąrašą išvengiama nenumatytų šalutinių poveikių.
Kaip juo naudotis
1) Pabaigoje pridėkite vieną elementą(vietoje)
nums = [1, 2, 3]
nums.append(4) # [1, 2, 3, 4]
# Note: append() returns None and mutates the list.
2) Įdėkite į tam tikrą vietą(vietoje)
letters = ['a', 'c', 'd']
letters.insert(1, 'b') # ['a', 'b', 'c', 'd'] inserts at index 1
3) Pridėkite kelis elementus iš bet kurios kartotinės(vietoje)
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) Sujunkite, kad sukurtumėte naują sąrašą(be mutacijos)
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) Kopijuoti, tada keisti(aiškus be mutacijų modelis)
orig = [10, 20]
copy = orig.copy()
copy.append(30) # orig is still [10, 20]
6) Įtraukite į įdėtą sąrašą
matrix = [['abc', '2'], ['cds', '333'], ['efg']]
matrix[2].append('444') # [['abc','2'], ['cds','333'], ['efg','444']]
7) Priskirdami skiltį, įterpkite kelis elementus(vietoje)
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) Trumpasis pratęsimas(vietoje)
Siūloma skaityti:Rašykite sąrašo supratimus Python
nums = [1, 2]
nums += [3, 4] # like extend; mutates the existing list
Ribos ir kompromisai
- Mutacija vs kopija:
append(),insert(),extend(), ir+=pakeisti sąrašą. Naudokite+, išpakavimas ([*lst, x]), arbacopy()- Tada pakeiskite, kad išvengtumėte šalutinio poveikio. - Našumas:
append(): amortizuota O(1)extend(k): O(k)insert(i, x): O(n) (pakeičia elementus)lst + otherarba[*lst, *other]: O(n + m), kad sudarytumėte naują sąrašą
- Iteracijos sauga:Nepridėkite ir nepašalinkite iš sąrašo kartodami jį; pirmiausia sukurkite naują sąrašą arba surinkite pakeitimus.
- Pridėti ir išplėsti:
append(obj)prideda objektą kaip vieną elementą;extend(iterable)prideda kiekvieną iteruojamo elementą. - Diktai ir rinkiniai:Pratęsiant su diktavimu, jo klavišai kartojami; rinkiniai yra netvarkingi, todėl rezultatų tvarka negarantuojama.
DUK
- Kaip pridėti priekyje?Naudokite
insert(0, x)mutuoti, arba[x, *lst]norėdami sukurti naują sąrašą. - Kodėl taip
append()grąžinti Nėra?Jis mutuoja vietoje; grąžinama vertė rodo, kad nėra naujo sąrašo, kurį būtų galima naudoti. - Is
+=skiriasi nuoextend()?Dėl sąrašų+=elgiasi kaipextend()ir pakeičia sąrašą. - Kaip vienoje pozicijoje pridėti kelis elementus?Naudokite skilties priskyrimą:
lst[i:i] = iterable. - Ar galiu pridėti kilpos metu?Venkite mutacijos iteracijos metu; vietoj to sukurkite rezultatų sąrašą, pvz.,
result = [*lst, extra]po kilpos.














![„Windows“ aptiko galimą grafikos įrenginio problemą [Pataisyti]](https://elsefix.com/tech/tejana/wp-content/uploads/2024/09/Windows-detected-potential-issue-graphics-device.png)