1. ProgrammingPythonKaip naudoti „Lambda“ funkcijas „Python“

Autorius: Alanas Shovicas, Johnas Shovicas

Python palaiko anoniminių funkcijų, dar vadinamų lambda funkcijomis, sąvoką. Anoniminė vardo dalis grindžiama tuo, kad funkcijai nereikia vardo (tačiau gali turėti, jei norite). Lambda dalis yra pagrįsta raktinio žodžio lambda naudojimu juos apibrėžti Python'e. Lambda taip pat yra 11-oji graikų abėcėlės raidė.

Tačiau pagrindinė priežastis, kodėl vardas naudojamas Python'e, yra ta, kad terminas lambda yra naudojamas anoniminėms skaičiavimo funkcijoms apibūdinti. Dabar, kai tai išsiaiškinome, galite naudoti šią informaciją norėdami pradėti užburiantį pokalbį biuro vakarėliuose.

Minimali sintaksė apibrėžiant lambda išraišką (be pavadinimo) su Python yra:

Lambda argumentai: išraiška

Kai naudojate:

  • Argumentus pakeiskite duomenimis, perduodamais į išraišką. Pakeiskite išraišką išraiška (formule), apibrėžiančia, ką norite grąžinti lambda.

Gana paplitęs šios sintaksės naudojimo pavyzdys yra tada, kai bandote rūšiuoti teksto eilutes, kai kai kurie vardai prasideda didžiosiomis raidėmis, o kai kurie prasideda mažosiomis raidėmis, kaip šie vardai:

Adamsas, Ma, diMeola, Zandusky

Tarkime, kad jūs parašėte šį kodą, kad sudėtumėte vardus į sąrašą, surūšiuotumėte ir tada atspausdintumėte sąrašą taip:

vardai = ['Adams', 'Ma', 'diMeola', 'Zandusky']
vardai.sort ()
spausdinti (vardai)

Išvada iš šios yra:

['Adams', 'Ma', 'Zandusky', 'diMeola']

Kai kuriems pradedantiesiems atrodo, kad „diMeola“ ateina po „Zandusky“. Bet kompiuteriai ne visada mato dalykus taip, kaip mes darome. (Tiesą sakant, jie nieko „nemato“, nes neturi nei akių, nei smegenų ... bet tai visiškai nesvarbu.) „DiMeola“ priežastis yra Zandusky todėl, kad rūšiavimas grindžiamas ASCII, tai yra sistema, kurioje kiekvienas simbolį vaizduoja skaičius.

Visų mažųjų raidžių skaičius yra didesnis nei didžiųjų raidžių. Taigi, rūšiuojant, visi žodžiai, prasidedantys mažosiomis raidėmis, eina po žodžių, prasidedančių didžiosiomis raidėmis. Jei nieko daugiau, tai bent jau pateisina nedidelį hmm.

Norėdami padėti išspręsti šiuos klausimus, „Python“ rūšiavimo () metodas leidžia į skliaustelius įtraukti raktą = išraišką, kur jūs galite nurodyti, kaip rūšiuoti. Sintaksė yra:

.sort (raktas = transformuoti)

Transformavimo dalis yra tam tikri rūšiuojamų duomenų variantai. Jei jums pasisekė ir viena iš įmontuotų funkcijų, tokių kaip len (ilgio atžvilgiu), veiks jums, tada galite naudoti ją vietoje transformacijos, kaip tai yra:

names.sort (raktas = len)

Deja, eilutės ilgis nepadeda abėcėlės tvarka. Taigi, kai vykdote tai, paaiškėja, kad tvarka:

['Ma', 'Adams', 'diMeola', 'Zandusky']

Rūšiavimas vyksta nuo trumpiausios eilutės (tos, kurioje yra mažiausiai simbolių) iki ilgiausios eilutės. Šiuo metu nėra naudinga.

Negalite rašyti klavišo = apatinio arba klavišo = viršutinio, kad rūšiavimas būtų grindžiamas visomis mažosiomis arba visomis didžiosiomis raidėmis, nes apatinė ir viršutinė nėra integruotos funkcijos (kurias gana greitai galite patikrinti naudodami įmontuotą „Python 3.7“ funkcijos).

Vietoj integruotos funkcijos galite naudoti pasirinktinę funkciją, kurią patys apibrėžiate naudodami def. Pvz., Galite sukurti funkciją, pavadintą mažesne (), kuri priima eilutę ir grąžina tą eilutę su visomis raidėmis, pakeistomis mažosiomis raidėmis. Čia yra funkcija:

def apatinis (anystring):
"" "Konvertuoja eilutes į visas mažąsias" ""
grąžinti anystring.lower ()

Vardas „žemesnis“ yra sudarytas, o anystring yra bet kurios eilutės, kurią jūs jai perduosite ateityje, vieta. Grįžtant anystring.lower () grąžinama ta eilutė, paversta visomis mažosiomis raidėmis, naudojant str. (Eilutės) objekto metodą .lower (). (Norėdami gauti daugiau informacijos, skaitykite apie „Python“ stygų metodus.)

Rūšiuoti () skliausteliuose negalima naudoti klavišo = žemesnis, nes žemesnis () nėra įmontuota funkcija. Tai metodas ... ne tas pats. Rūšys erzina visus šiuos žodžius.

Tarkime, kad šią funkciją rašote „Jupyter“ langelyje arba .py faile. Tada jūs paskambinsite funkcijai, pavyzdžiui, atspausdinti (mažosios raidės („Zandusky“)). Kaip išvestį gausite eilutę, paverttą mažosiomis raidėmis, kaip matote žemiau.

pasirinktinė funkcija mažesnė () „Python“

Gerai, kad dabar jūs turite pasirinktinę funkciją konvertuoti bet kurią eilutę į visas mažąsias raides. Kaip jūs tai naudojate kaip rūšiavimo raktą? Paprasta, naudokite klavišą = transformuokite taip, kaip anksčiau, bet pakeiskite transformaciją savo pasirinktinės funkcijos pavadinimu. Funkcija pavadinta mažosiomis raidėmis, todėl naudosite .sort (klavišas = mažosios raidės), kaip parodyta toliau:

def mažosios raidės (antros):
"" "Konvertuoja eilutes į visas mažąsias" ""
grąžinti anystring.lower ()
 
vardai = ['Adams', 'Ma', 'diMeola', 'Zandusky']
names.sort (klavišas = mažosios raidės)

Vykdydami šį kodą, kad būtų rodomas vardų sąrašas, jie teisinga tvarka, nes rūšiavimas pagrįstas eilutėmis, kurios visos yra mažosios. Išvestis yra tokia pati kaip ir anksčiau, nes tik rūšiavimas, kuris vyko už scenos, buvo naudojamas mažosiomis raidėmis. Pirminiai duomenys vis dar rašomi didžiosiomis ir mažosiomis raidėmis.

'Adams', 'diMeola', 'Ma', 'Zandusky'

Jei vis dar atsibusite ir sąmoningai perskaitysite visa tai, galvojate: „Gerai, kad jūs išsprendėte rūšiavimo problemą. Bet aš maniau, kad čia mes kalbame apie lambda funkcijas. Kur yra lambda funkcija? “Lambda funkcijos dar nėra.

Bet tai puikus pavyzdys, kur galėtumėte naudoti „lambda“ funkciją, nes „Python“ funkcija, kuriai skambinate, mažosiomis raidėmis (), visą savo darbą atlieka tik viena kodo eilute: grąžinti anystring.lower ().

Kai jūsų funkcija gali atlikti savo užduotį naudodama paprastą vienos eilutės išraišką, galite praleisti def ir funkcijos pavadinimą ir tiesiog naudoti šią sintaksę:

lambda parametrai: išraiška

Pakeiskite parametrus vienu ar daugiau parametrų pavadinimų, kuriuos sudarote patys (pavadinimai skliausteliuose po def ir funkcijos pavadinimas įprastoje funkcijoje). Pakeiskite išraišką ta, kuria norite, kad funkcija grįš be žodžio return. Taigi šiame pavyzdyje raktas, naudojant lambda išraišką, būtų:

lambda anystring: anystring.lower ()

Dabar galite suprasti, kodėl tai anoniminė funkcija. Visa pirmoji eilutė su funkcijos pavadinimu mažosiomis raidėmis () buvo pašalinta. Taigi „lambda“ išraiškos naudojimo pranašumas yra tas, kad jums net nereikia išorinės pasirinktinės funkcijos. Jums tiesiog reikia parametro, po kurio eina dvitaškis, ir išraiška, nurodanti, ką grąžinti.

Žemiau esančiame paveikslėlyje rodomas visas kodas ir jo paleidimo rezultatas. Jūs gausite tinkamą rūšiavimo užsakymą, nereikalaudami kliento išorinės funkcijos, tokios kaip mažosios raidės (). Jūs tiesiog naudojate anystring: anystring.lower () (po žodžio lambda) kaip rūšiavimo klavišą.

Python lambda išraiška

Taip pat pridėkime, kad antros stygos yra ilgesnis parametrų pavadinimas, nei dauguma Pythonistas. Python'o žmonės mėgsta trumpus vardus, net ir vienos raidės vardus. Pvz., Antrostruktą galite pakeisti s (arba bet kokia kita raide), kaip aprašyta toliau, ir kodas veiks tiksliai taip:

vardai = ['Adams', 'Ma', 'diMeola', 'Zandusky']
vardai.sort (klavišas = lambda s: s.lower ())
spausdinti (vardai)

Grįžus šios tirados pradžioje buvo paminėta, kad lambda funkcija nebūtinai turi būti anoniminė. Galite jiems duoti vardus ir skambinti taip, kaip darytumėte kitas funkcijas.

Pvz., Čia yra lambda funkcija, pavadinta valiuta, kuri paima bet kokį skaičių ir grąžina eilutę valiutos forma (tai yra, su pirmaujančiu dolerio ženklu, kableliais tarp tūkstančių ir dviejų skaitmenų centų):

valiuta = lambda n: f „$ {n:,. 2f}“

Štai vienas procentas, kuris padaugina bet kurį jūsų siunčiamą skaičių iš 100 ir parodo jį dviem procentų ženklu pabaigoje:

procentai = lambda n: f "{n: .2%}"

Šiame paveikslėlyje pateikiami abiejų funkcijų, apibrėžtų „Jupyter“ langelio viršuje, pavyzdžiai. Tada keli spausdinimo teiginiai iškviečia funkcijas pagal pavadinimą ir perduoda jiems kai kuriuos pavyzdžių duomenis. Kiekviename spausdinimo () sakinyje rodomas norimo formato numeris.

Python formatavimo numeriai

Priežastis, kodėl galite juos apibrėžti kaip vienos eilutės lambdas, yra ta, kad visus darbus galite atlikti vienoje eilutėje, f „$ {n:,. 2f}“ už pirmąją ir f „{n: .2%}“ - Kitas. Bet vien todėl, kad galite tai padaryti, dar nereiškia, kad privalote. Jūs taip pat galėtumėte naudotis įprastomis funkcijomis:

# Rodyti numerį valiutos formatu.
def valiuta (n):
grąžinti „$ {n:,. 2f}“
 
def procentai (n):
# Rodyti numerį procentais.
grąžinti „{n: .2%}“

Turėdami šią ilgesnę sintaksę, galėtumėte pateikti ir daugiau informacijos. Pvz., Galite numatyti, kad formatas būtų suderintas į dešinę tam tikru pločiu (tarkime, 15 ženklų), taigi visi numeriai išėjo iš dešinės, suderinti su tuo pačiu pločiu. Paveikslėlyje parodytas šis dviejų funkcijų kitimas.

„Python“ formatavimo funkcijos fiksuotas plotis

Aukščiau esančiame paveikslėlyje antrasis parametras yra neprivalomas ir, jei praleistas, pagal nutylėjimą yra 15. Taigi, jei jūs tai vadinate taip:

spausdinti (valiuta (9999))

... gausite 9 999,00 USD polsterį su pakankamai vietos kairėje, kad jis būtų 15 simbolių pločio. Jei vietoj to vadinate taip:

spausdinti (valiuta (9999,20)

... vis tiek gausite 9 999,00 USD, bet kairėje pusėje bus pakankamai tarpų, kad būtų 20 simbolių pločio.

Aukščiau naudojamas „.ljust“ () yra „Python“ įmontuotas stygų metodas, kuris kairėje eilutės pusėje užpildo pakankamai tarpų, kad jis būtų nurodytas plotis. Dešinėje pusėje taip pat yra rjust () metodas. Taip pat galite nurodyti ne simbolį, o tarpą. Jei jums reikia daugiau informacijos, „Google python 3“ teisingai sureguliuokite.

Taigi jūs turite tai, galimybę sukurti savo pasirinktines funkcijas „Python“. Realiame gyvenime tai, ką norite padaryti, yra bet kada, kai pamatysite, kad programoje vėl ir vėl turite pasiekti tą patį kodo fragmentą - tą patį prisijungimo bitą - ne tik nukopijuokite / įklijuokite kodas vėl ir vėl. Vietoj to, įdėkite visą kodą į funkciją, kuriai galite skambinti pagal pavadinimą.

Tokiu būdu, jei nuspręsite pakeisti „Python“ stygų kodą, jums nereikės kastis per programą, kad rastumėte visas vietas, kurias reikia pakeisti. Tiesiog pakeiskite ją vienoje vietoje, kur viskas yra apibrėžta.

  1. Kaip apibrėžti ir naudoti „Python“ sąrašus

Autorius: Alanas Shovicas, Johnas Shovicas

Paprasčiausias „Python“ duomenų rinkimas yra sąrašas. Sąrašas yra bet koks duomenų elementų sąrašas, atskirtas kableliais, skliausteliuose. Paprastai pavadinimą „Python“ sąrašui priskiriate naudodamiesi ženklu =, lygiai taip, kaip darytumėte su kintamaisiais. Jei sąraše yra skaičių, nenaudokite kabutės aplink juos. Pvz., Čia yra testų balų sąrašas:

balai = [88, 92, 78, 90, 98, 84]

Jei sąraše yra stygų, tada, kaip visada, šios eilutės turėtų būti įterpiamos į vienkartines arba dvigubas kabutes, kaip šiame pavyzdyje:

Norėdami sąraše pateikti turinį ekrane, galite jį spausdinti taip, kaip spausdintumėte bet kurį įprastą kintamąjį. Pvz., Atlikus spausdinimą (studentams) jūsų kode, apibrėžus tą sąrašą, tai parodoma ekrane.

['Markas', 'Amber', 'Todd', 'Anita', 'Sandy']

Tai gali būti ne visai tai, ką turėjote omenyje. Bet nesijaudinkite, „Python“ siūlo daugybę puikių būdų, kaip pasiekti sąrašų duomenis ir parodyti juos taip, kaip jums patinka.

Nurodant „Python“ sąrašo elementus pagal vietą

Kiekvienas sąrašo elementas turi pozicijos numerį, pradedant nuo nulio, net jei nematote jokių skaičių. Bet kurį sąrašo elementą galite nurodyti pagal jo numerį, naudodami sąrašo pavadinimą, po kurio pateikiamas skaičius laužtiniuose skliaustuose. Kitaip tariant, naudokite šią sintaksę:

sąrašo pavadinimas [x]

Pakeiskite sąrašo pavadinimą sąrašo, kurį pasiekiate, pavadinimu ir pakeiskite x norimo elemento pozicijos numeriu. Atminkite, kad pirmasis elementas visada yra nulis, o ne vienas. Pvz., Pirmoje žemiau esančioje eilutėje aš apibrėžiu sąrašą, pavadintą studentais, tada iš to sąrašo išspausdinu elemento numerį nulis. Vykdant kodą, rodomas vardas Markas.
studentai = [„Markas“, „Gintaras“, „Todas“, „Anita“, „Smėlio spalvos“]
spausdinti (studentams [0])
ženklas

Skaitydami prieigos sąrašo elementus, specialistai prieš numerį naudoja žodį sub. Pvz., Apie studentus [0] bus kalbama kaip apie nulį.

Šiame kitame pavyzdyje pateiktas sąrašas, kurio pavadinimai yra balai. Funkcija spausdinti () išspausdina paskutinio sąrašo balo pozicijos numerį, kuris yra 4 (nes pirmasis visada lygus nuliui).

balai = [88, 92, 78, 90, 84]
spausdinti (balai [4])
84

Jei bandysite pasiekti sąrašo elementą, kurio nėra, gausite klaidą „indeksas už diapazono“. Rodyklės dalis yra nuoroda į numerį skliausteliuose. Pavyzdžiui, žemiau pateiktame paveikslėlyje parodytas nedidelis „Jupyter“ nešiojamojo kompiuterio eksperimentas, kuriame buvo sudarytas partitūrų sąrašas, tada buvo bandoma atspausdinti partitūrą [5].

Nepavyko ir atsirado klaida, nes nėra balų [5]. Yra tik balai [0], balai [1], balai [2], balai [3] ir balai [4], nes skaičiavimas visada prasideda nuo nulio su pirmuoju sąraše.

Python indekso diapazonas

Žvilgsnis į Python sąrašą

Norėdami pasiekti kiekvieną sąrašo elementą, tiesiog naudokite „for loop“ su šia sintaksė:

x sąraše:

Pakeiskite x pasirinktu kintamuoju pavadinimu. Pakeiskite sąrašą sąrašo pavadinimu. Paprastas būdas padaryti kodą skaitomą visada sąrašo pavadinime naudoti daugiskaitą (pvz., Studentai, balai). Tada kintamojo vardui galite naudoti vienaskaitos vardą (mokinys, balas). Taikant šį metodą taip pat nereikia naudoti indeksų numerių (numerių laužtiniuose skliaustuose). Pvz., Šis kodas spausdina kiekvieną balą balų sąraše:

už rezultatą balais:
spausdinti (partitūra)

Atminkite, kad visada įtraukite kodą, kuris bus vykdomas kilpoje. Šis paveikslėlis rodo išsamesnį pavyzdį, kuriame galite pamatyti kodo paleidimo rezultatą „Jupyter“ nešiojamajame kompiuteryje.

Žvilgsnis į Python sąrašą

Pažiūrėkite, ar „Python“ sąraše yra elementas

Jei norite, kad jūsų kodas patikrintų sąrašo turinį ir sužinotų, ar jame jau yra koks nors elementas, naudokite sąrašo pavadinimą if teiginyje arba kintamąją užduotį.

Pvz., Žemiau esančiame paveikslėlyje pateiktas kodas sukuria vardų sąrašą. Tada du kintamieji kaupia vardų Anita ir Bobas paieškos rezultatus. Atspausdinus kiekvieno kintamojo turinį, rodoma True to, kieno vardas (Anita) yra sąraše. Bandymas išsiaiškinti, ar Bobas yra sąraše, įrodo klaidingą.

Žiūrėjimas, ar elementas yra „Python“ sąraše

Kaip gauti Python sąrašo ilgį

Norėdami nustatyti, kiek elementų yra sąraše, naudokite funkciją len () (trumpas ilgis). Sąrašo pavadinimą įrašykite skliausteliuose. Pvz., Įveskite šį kodą į „Jupyter“ nešiojamojo kompiuterio ar „Python“ raginimą ar bet ką:

studentai = [„Markas“, „Gintaras“, „Todas“, „Anita“, „Smėlio spalvos“]
spausdinti (len (studentai))

Vykdant šį kodą gaunama ši išvestis:

5

Iš tikrųjų sąraše yra penki elementai, nors paskutinis visada yra vienu mažesnis už skaičių, nes „Python“ pradeda skaičiuoti ties nuliu. Taigi paskutinis, Sandy, iš tikrųjų reiškia studentus [4], o ne studentus [5].

Elemento pridėjimas prie Python sąrašo pabaigos

Jei norite, kad jūsų Python kodas prie sąrašo pabaigos pridėtų naują elementą, naudokite .append () metodą su reikšme, kurią norite pridėti skliaustuose. Kabutėse galite naudoti kintamąjį pavadinimą arba pažodinę reikšmę.

Pavyzdžiui, šiame paveikslėlyje eilutė, skaitanti students.append („Goober“), prideda sąrašą „Goober“. Eilutė, skaitoma students.append (new_student), prideda bet kurį vardą, saugomą kintamajame pavadinimu new_student. .Append () metodas visada pridedamas prie sąrašo pabaigos. Taigi spausdindami sąrašą pabaigoje matote tuos du naujus vardus.

Python priedų sąrašas

Jei norite sužinoti, ar elementas yra sąraše, galite naudoti testą, tada pridėkite jį tik tada, kai jo dar nėra. Pvz., Toliau pateiktu kodu prie sąrašo nebus pridėtas vardas Gintaras, nes tas vardas jau yra sąraše:

student_name = "Amanda"

#Pridėkite studento vardą, bet tik tada, jei jo dar nėra sąraše.
jei studento vardas studentuose:
    spausdinti (studento_vardas + „jau yra sąraše“)
Kitas:
    students.append (studento vardas)
    spausdinti (studento_pavadinimas + „įtrauktas į sąrašą“)

Elemento įterpimas į „Python“ sąrašą

Nors append () metodas leidžia jums pridėti elementą prie sąrašo pabaigos, įterpimo () metodas leidžia įtraukti elementą į sąrašą bet kurioje pozicijoje. Įterpimo () sintaksė yra

sąrašo vardas.įterpti (pozicija, elementas)

Pakeiskite sąrašo pavadinimą sąrašo pavadinimu, poziciją - ta vieta, kurioje norite įterpti elementą (pavyzdžiui, 0, kad jis taptų pirmuoju elementu, 1, kad jis taptų antruoju elementu ir pan.). Elementą pakeiskite reikšme arba reikšmės turinčio kintamojo pavadinimu, kurį norite įtraukti į sąrašą.

Pvz., Dėl šio kodo Lupe tampa pirmuoju sąrašo elementu:

# Sukurkite stygų (vardų) sąrašą.
studentai = [„Markas“, „Gintaras“, „Todas“, „Anita“, „Smėlio spalvos“]

student_name = "Lupe"
# Pridėkite studento vardą priešais sąrašą.
students.insert (0, studento vardas)

#Parodyk man naują sąrašą.
spausdinti (studentams)

Jei paleisite kodą, atspausdinus (studentai) sąrašas bus rodomas po to, kai buvo įterptas naujas vardas:

['Lupe', 'Markas', 'Amber', 'Todd', 'Anita', 'Sandy']

Elemento keitimas „Python“ sąraše

Galite pakeisti sąrašo elementą naudodamiesi = priskyrimo operatoriumi (patikrinkite šiuos įprastus Python operatorius), kaip ir jūs su kintamaisiais. Tiesiog įsitikinkite, kad indekso numerį įtraukėte į norimo pakeisti elemento laužtinius skliaustus. Sintaksė yra:

sąrašo pavadinimas [rodyklė] = nauja vertė

Pakeiskite sąrašo pavadinimą sąrašo pavadinimu; pakeiskite rodyklę elemento, kurį norite pakeisti, indeksu (indekso numeriu); ir pakeiskite naują vertę visomis, kurias norite įtraukti į sąrašo elementą. Pvz., Pažiūrėkite į šį kodą:

# Sukurkite stygų (vardų) sąrašą.
studentai = [„Markas“, „Gintaras“, „Todas“, „Anita“, „Smėlio spalvos“]
studentų [3] = „Hobartas“
spausdinti (studentams)

Kai paleidžiate šį kodą, išvestis yra tokia, nes Anitos vardas buvo pakeistas į Hobartą.

['Markas', 'Amber', 'Todd', 'Hobart', 'Sandy']

Derinant „Python“ sąrašus

Jei turite du sąrašus, kuriuos norite sujungti į vieną sąrašą, naudokite išplėtimo () funkciją su sintakse:

original_list.extend (papildomi_emitai_listai)

Kode pakeiskite original_list į sąrašo, prie kurio pridėsite naujų sąrašo elementų, pavadinimą. Pakeiskite „papildus_items_list“ sąrašo pavadinimu, kuriame yra elementai, kuriuos norite įtraukti į pirmąjį sąrašą. Čia yra paprastas pavyzdys, naudojant sąrašus pavadinimais list1 ir list2. Vykdydami list1.extend (list2), pirmame sąraše yra elementai iš abiejų sąrašų, kaip galite pamatyti ataskaitos print () išvestyje pabaigoje.

# Sukurkite du vardų sąrašus.
list1 = [„Zara“, „Lupe“, „Hong“, „Alberto“, „Jake“]
list2 = [„Huey“, „Dewey“, „Louie“, „Nader“, „Bubba“]

# Pridėkite list2 vardus prie list1.
sąrašas1.išplėsti (sąrašas2)

# 1 spausdinimo sąrašas.
spausdinti (1 sąrašas)

['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake', 'Huey', 'Dewey', 'Louie', 'Nader', 'Bubba']

Lengvas Parcheesi, ne?

„Python“ sąrašo elementų pašalinimas

„Python“ siūlo pašalinti () metodą, kad galėtumėte pašalinti bet kurią reikšmę iš sąrašo. Jei elementas yra sąraše kelis kartus, pašalinamas tik pirmasis įvykis. Pvz., Šis kodas rodo raidžių, kurių raidė C kelis kartus pakartota, sąrašą. Tada kodas naudojamas raidėmis.remove („C“), kad būtų pašalinta C raidė iš sąrašo:

# Pašalinkite „C“ iš sąrašo.
letters.remove („C“)

#Parodyk man naują sąrašą.
spausdinti (raidės)

Kai iš tikrųjų vykdysite šį kodą ir tada atspausdinsite sąrašą, pamatysite, kad buvo pašalinta tik pirmoji C raidė:

['A', 'B', 'D', 'C', 'E', 'C']

Jei jums reikia pašalinti visą elementą, galite naudoti tam tikrą kilpą, kad pakartotumėte .remove, kol elementas vis dar išliks sąraše. Pavyzdžiui, šis kodas pakartoja „.remove“, kol „C“ vis dar yra sąraše.

# Sukurkite stygų sąrašą.
raidės = ["A", "B", "C", "D", "C", "E", "C"]

Jei norite pašalinti elementą pagal jo vietą sąraše, naudokite pop () su rodyklės numeriu, o ne pašalinti () su reikšme. Jei norite pašalinti paskutinį elementą iš sąrašo, naudokite pop () be indekso numerio.

Pvz., Šis kodas sukuria sąrašą, viena eilutė pašalina pirmąjį elementą (0), o kita - paskutinį elementą (pop (), skliausteliuose neturint nieko). Atspausdinus sąrašą bus parodyti šie du elementai:

# Sukurkite stygų sąrašą.
raidės = ["A", "B", "C", "D", "E", "F", "G"]
 
#Nuimkite pirmąjį elementą.
raidės.pop (0)
#Nuimkite paskutinį elementą.
raidės.pop ()
 
#Parodyk man naują sąrašą.
spausdinti (raidės)

Vykdydami kodą matote, kad iššokant pirmąjį ir paskutinįjį daiktus, iš tikrųjų sekėsi:

['B', 'C', 'D', 'E', 'F']

Kai pop () elementą pašalinate iš sąrašo, galite išsaugoti tos vertės kopiją kai kuriuose kintamuosiuose. Pvz., Šiame paveikslėlyje rodomas tas pats kodas, kaip aukščiau. Tačiau joje saugomos pašalintos kopijos kintamuosiuose, pavadinimuose first_removed and last_removed. Pabaigoje atspausdinamas „Python“ sąrašas, taip pat parodyta, kurios raidės buvo pašalintos.

pašalinti elementus iš „Python“ sąrašo

„Python“ taip pat siūlo komandą del (trumpai ištrinti), kuri išbraukia bet kurį elementą iš sąrašo, remdamasi jo indekso numeriu (padėtimi). Bet vėlgi, jūs turite atsiminti, kad pirmasis elementas yra lygus nuliui. Taigi, tarkime, kad paleidote šį kodą, norėdami išbraukti 2 punktą iš sąrašo:

# Sukurkite stygų sąrašą.
raidės = ["A", "B", "C", "D", "E", "F", "G"]
 
# Pašalinkite elemento 2 poskyrį.
del raidės [2]
 
spausdinti (raidės)

Paleidus šį kodą sąrašas vėl rodomas taip. C raidė buvo ištrinta, ir tai yra teisingas punktas, kurį reikia ištrinti, nes raidės yra sunumeruotos 0, 1, 2, 3 ir tt.

['A', 'B', 'D', 'E', 'F', 'G']

Norėdami ištrinti visą sąrašą, taip pat galite naudoti del. Tiesiog nenaudokite laužtinių skliaustų ir rodyklės numerio. Pvz., Žemiau pateiktas kodas sukuria sąrašą, tada jį ištrina. Bandant atspausdinti sąrašą po ištrynimo, atsiranda klaida, nes vykdant spausdinimo () pareiškimą sąrašas nebeegzistuoja.

ištrinti Python sąrašą

„Python“ sąrašo išvalymas

Jei norite ištrinti sąrašo turinį, bet ne patį sąrašą, naudokite .clear (). Sąrašas vis dar egzistuoja; tačiau jame nėra elementų. Kitaip tariant, sąrašas yra tuščias. Šis kodas parodo, kaip galėtumėte tai išbandyti. Vykdant kodą pabaigoje rodoma [], kuris leidžia žinoti, kad sąrašas tuščias:

# Sukurkite stygų sąrašą.
raidės = ["A", "B", "C", "D", "E", "F", "G"]
 
# Išvalykite visų įrašų sąrašą.
raidės.išvalyti ()
 
# Parodykite man naują sąrašą.
spausdinti (raidės)

[]

Skaičiuojama, kiek kartų elementas rodomas „Python“ sąraše

Norėdami suskaičiuoti, kiek kartų elementas yra sąraše, galite naudoti „Python count“ () metodą. Kaip ir kitų sąrašų metodų atveju, sintaksė yra paprasta:

listname.count (x)

Pakeiskite sąrašo pavadinimą savo sąrašo pavadinimu, o x - ieškoma verte (arba kintamojo, kuriame yra ta vertė, pavadinimu).

Žemiau esančiame paveikslėlyje pateiktas kodas suskaičiuoja, kiek kartų raidė B rodoma sąraše, naudojant pažodinį B .count () skliausteliuose. Tas pats kodas taip pat skaičiuoja C klasių skaičių, tačiau ta reikšmė buvo saugoma kintamajame, tik norint parodyti sintaksės skirtumą. Abu skaičiavimai dirbo, kaip galite pamatyti programos išvestyje apačioje. Vienas buvo pridėtas skaičiuojant F, nenaudojant jokių kintamųjų. Kodai, kurie rodo pranešimą, „F“ buvo suskaičiuoti tiesiai. F klasių nėra, todėl tai grąžina nulį, kaip matote išvestyje.

skaičiuoti „Python“ sąrašo elementus

Bandant sujungti skaičius ir eilutes, kad būtų suformuotas pranešimas, atminkite, kad turite konvertuoti numerius į eilutes naudodami funkciją str (). Priešingu atveju jūs gaunate klaidą, skaitančią kažką panašaus, kuris gali sujungti tik str (ne „int“) į str. Tame pranešime int trumpas sveikasis skaičius, o str yra trumpas eilutė.

„Python“ sąrašo elemento rodyklės radimas

„Python“ siūlo .index () metodą, kuris grąžina skaičių, nurodantį sąrašo elemento vietą pagal indekso numerį. Sintaksė yra:

listname.index (x)

Kaip visada, sąrašo pavadinimą pakeiskite sąrašo, kurio norite ieškoti, pavadinimu. Pakeiskite x ką tik ieškote (kaip visada, kaip žodį arba kaip kintamąjį pavadinimą). Žinoma, negarantuojame, kad prekė yra sąraše, ir net jei ji yra, negarantuojame, kad prekė yra sąraše tik vieną kartą. Jei elemento nėra sąraše, įvyksta klaida. Jei elementas yra sąraše kelis kartus, tada grąžinamas pirmojo atitinkančio elemento indeksas.

Šiame paveikslėlyje parodytas pavyzdys, kai programa sugenda ties f_index = grade.index (žiūrėti_for), nes sąraše nėra F.

Python sąrašo elementų rodyklė

Lengvas būdas išspręsti šią problemą yra naudoti if teiginį, kad sužinotumėte, ar elementas yra sąraše, prieš bandant gauti jo indekso numerį. Jei elemento nėra sąraše, pateikite pranešimą, kuriame sakoma. Kitu atveju gaukite indekso numerį ir parodykite jį pranešime. Šis kodas yra toks:

# Sukurkite stygų sąrašą.
pažymiai = [„C“, „B“, „A“, „D“, „C“, „B“, „C“]
# Nuspręskite, ko ieškoti
look_for = "F"
# Pažiūrėkite, ar elementas yra sąraše.
jei žiūrėti į klases:
    # Jei jo yra sąraše, gaukite ir parodykite rodyklę.
    spausdinti (str (look_for) + "yra indekse" + str (grade.index (look_for)))
Kitas:
    # Jei jo nėra sąraše, net nebandykite ieškoti indekso numerio.
    spausdinti (str. (ieškoti_for) + „nėra sąraše“)

„Python“ sąrašų abėcėlė ir rūšiavimas

„Python“ siūlo rūšiavimo () metodą sąrašams rūšiuoti. Paprasčiausia forma ji sudaro abėcėlės tvarka sąrašo elementus (jei jie yra stygos). Jei sąraše yra skaičių, jie rūšiuojami nuo mažiausio iki didžiausio. Jei norite atlikti paprastą rūšiavimą, tiesiog naudokite rūšiuoti () su tuščiomis skliaustelėmis:

listname.sort ()

Pakeiskite sąrašo pavadinimą savo sąrašo pavadinimu. Šiame paveikslėlyje parodytas pavyzdys, kuriame naudojamas stygų sąrašas ir skaičių sąrašas. Pavyzdyje kiekvienam iš jų buvo sukurtas naujas sąrašas, tiesiog priskiriant kiekvieną išrūšiuotą sąrašą naujam sąrašo pavadinimui. Tada kodas spausdina kiekvieno išrūšiuoto sąrašo turinį.

rūšiuoti Python sąrašą

Jei sąraše yra stygų su mažosiomis ir mažosiomis raidėmis, o jei rūšiavimo rezultatai neatrodo teisingi, pabandykite pakeisti .sort () į .sort (klavišas = lambda s: s.lower ()), tada vėl paleisdamas kodą.

Datos yra šiek tiek sudėtingesnės, nes negalite jų tiesiog įvesti kaip stygas, pvz., „2018-12-31“. Norint teisingai rūšiuoti, jie turi būti datos duomenų tipai. Tai reiškia, kad kiekvienos datos apibrėžimui reikia naudoti datos laiko modulį ir datos () metodą. Galite įtraukti datas į sąrašą kaip ir bet kurį kitą sąrašą. Pavyzdžiui, šioje eilutėje kodas sukuria keturių datų sąrašą, o kodas yra tobulas.

datos = [dienos data (2020,12,31), dienos data (2019,1,31), dienos data (2018,2,28), dienos data (2020,1,1)]

Kompiuteris tikrai neprieštaraus, jei sudarysite sąrašą tokiu būdu. Bet jei norite, kad kodas būtų lengviau skaitomas sau ar kitiems kūrėjams, galbūt norėsite sukurti ir pridėti kiekvieną datą po vieną, kad tik būtų šiek tiek lengviau pamatyti, kas vyksta, taigi neturite apdoroti tiek daug kablelių vienoje kodo eilutėje. Žemiau pateiktame paveikslėlyje pateiktas pavyzdys, kai buvo sukurtas tuščias sąrašas, pavadintas datelių sąrašu:

datelistas = []
rodyti datas Python'e

Tada viena data vienu metu buvo pridedama prie sąrašo, naudojant dt.date (metų, mėnesio, dienos) sintaksę.

Sukūrus sąrašą, kodas naudojamas datelist.sort (), kad būtų galima juos suskirstyti į chronologinę tvarką (ankstyviausią iki naujausio). Tame kode nereikia naudoti spausdinimo (duomenų sąrašo), nes šis metodas rodo datas su įtraukta duomenų tipo informacija, pavyzdžiui:

[datetime.date (2018, 2, 28), datetime.date (2019, 1, 31), datetime.date (2020, 1, 1), datetime.date (2020, 12, 31)]

Ne pats lengviausias sąrašas. Taigi, užuot spausdinę visą sąrašą vienu spausdinimo () sakiniu, galite perbraukti kiekvieną sąrašo datą ir atsispausdinti kiekvieną, suformatuotą naudojant f-string% m /% d /% Y. Kiekviena data rodoma atskira eilute mm / dd / mm /

Jei norite rūšiuoti elementus atvirkštine tvarka, skliausteliuose „sort ()“ uždėkite „reverse = True“ (nepamirškite padaryti didžiosiomis raidėmis pirmosios raidės). Žemiau pateiktame paveikslėlyje pateikiami visų trijų sąrašų rūšiavimo mažėjimo (atvirkštine) tvarka pavyzdžiai, naudojant atvirkštinę = teisingą.

rūšiuoti informaciją „Python“ sąraše atvirkščiai

„Python“ sąrašo atsukimas

Taip pat galite pakeisti elementų eilės tvarką sąraše naudodami .reverse metodą. Tai nėra tas pats, kas rūšiuoti atvirkščiai, nes kai rūšiuojate atvirkščiai, jūs vis tiek rūšiuojate: Z – A styginiams, skaičiams nuo didžiausio iki mažiausio, naujausiam iki anksčiausio datai. Atšaukdami sąrašą, paprasčiausiai atšaukite sąraše esančius elementus, nesvarbu, kokia jų tvarka, ir nemėginkite jų rūšiuoti.

Šis kodas rodo pavyzdį, kai jūs pakeisite vardų tvarką sąraše ir tada atspausdinsite sąrašą. Išvestyje rodomi sąrašo elementai, pakeisti pagal pradinę tvarką:

# Sukurkite stygų sąrašą.
vardai = [„Zara“, „Lupe“, „Hong“, „Alberto“, „Jake“]
# Grįžkite į sąrašą
vardai.reverse ()
# Išspausdinkite sąrašą
spausdinti (vardai)
 
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

„Python“ sąrašo kopijavimas

Jei kada nors reikės dirbti su sąrašo kopija, naudokite .copy () metodą, kad nepakeistumėte pirminio sąrašo. Pvz., Šis kodas yra panašus į ankstesnį kodą, išskyrus tai, kad užuot pakeitę pirminio sąrašo tvarką, jūs padarote sąrašo kopiją ir apversite tą. Atspausdinus kiekvieno sąrašo turinį, parodoma, kaip pirmasis sąrašas tebėra originalus, o antrasis - atvirkštinis:

# Sukurkite stygų sąrašą.
vardai = [„Zara“, „Lupe“, „Hong“, „Alberto“, „Jake“]
 
# Padarykite sąrašo kopiją
atgaliniai vardai = vardai.kopija ()
# Apverskite kopiją
backward_names.reverse ()
 
# Išspausdinkite sąrašą
spausdinti (vardai)
spausdinti (atgaliniai vardai)
 
['Zara', 'Lupe', 'Hong', 'Alberto', 'Jake']
['Jake', 'Alberto', 'Hong', 'Lupe', 'Zara']

Ateities nuorodoms pateikti šioje lentelėje pateikiami metodai, apie kuriuos sužinojote.