Ĉi tio estas maŝine tradukita teksto kiu povas enhavi erarojn!
Kio estas listo?
Listo estas simple kolekto de aĵoj. Kaj ĝi povas esti kolekto de ĉio ajn. Vi povas havi nombrojn, vi povas havi tekston, vi povas havi objektojn, vi povas havi miksaĵon de aĵoj, ĉio ajn.
Ĉi tio estas utila por ne bezoni skribi milionon da variabloj por similaj aĵoj. 💯🦍
Del 1 - Krei Listojn
Krei liston estas tre simpla. Ĉion kion ni bezonas fari estas uzi kramparentezojn [ kaj ].
Tasko 1.1a
Uzu kramparencojn kaj kreu liston enhavantajn bestojn, poste elprintu ĝin.
Svaret
bestoj = ["kato", "hundo", "muso", "fiŝo", "birdo"]
print(bestoj)
Syntaks
Listo devas havi komojn , inter ĉiu elemento en la listo.
Hvorfor er dette nyttig?
Imagu, ke vi devas kontroli 10 bestojn en via kodo.
Vi povus skribi tion tiel:
besto1 = "kato"
besto2 = "hundo"
besto3 = "muso"
besto4 = "fiŝo"
besto5 = "birdo"
besto6 = "elefanto"
besto7 = "kanguruo"
besto8 = "koalo"
besto9 = "papago"
besto10 = "tigro"
Iom nepratique fariĝas, ju pli da bestoj vi havas. Pensu, se vi havu 100 bestojn, 1000 bestojn. Kio se vi nun volus elprinti ĉiujn bestojn, tiam certe fariĝus malfacile. Tial ni povas prefere uzi listojn. Tio faras vian kodon multe pli facile skribebla kaj ŝparas al vi multe da tempo.
bestoj = ["kato", "hundo", "muso", "fiŝo", "birdo", "elefanto", "kanguruo", "koalo", "papago", "tigro"]
print(bestoj)
Tasko 1.1b
Aldonu kelkajn pliajn bestojn al la listo per pliaj elementoj, kio okazas nun?
Tasko 1.2
Ne necesas nur teksto en listoj, provu krei liston kun nombroj.
Svaret
tall = [47, 137, 214, 1337]
print(tall)
Hermetegn?
Ĉi tie ne estas uzataj hermetegn " ĉirkaŭ la nombroj, ĉar ni volas, ke ili estu nombroj kaj ne teksto.
Tasko 1.3
Nun provu krei liston kiu enhavas mikson de teksto kaj nombroj por vidi kio okazas:
Svaret
listo = ["kato", 1337, 214, "hundo", "fiŝo", 137]
print(listo)
Del 2 - Elpreni el listoj
En Del 1 ni vidis, ke ni povas uzi print() por elprinti la tutan liston. Sed kio se ni volas nur elpreni ion el la listo? Tiam ni povas uzi [] por elpreni indicon.
Index?
Indekso estas vorto, kiu ne havas multajn bonajn sinonimojn. Sed kion vi devas scii estas, ke ĝi diras, kie io situas. Ni rigardu ekzemplon.
Tasko 2.1
Rigardu ĉi tiun liston sube:
dyr = ["katt", "hund", "kenguru", "fisk", "mus"] # Listo de bestoj
Kio okazas kiam vi skribas, do ni volas elpreni tion, kio kuŝas je la indekso numero 1 en la listo:
# Skriver ut det andre elementet i listen 'dyr'.
# Elskrivas la duan elementon de la listo 'dyr'.
print(dyr[1])
Kial "hund" estas elprintita, kaj ne "katt"?
Index begynner ikke på 1!
Indekso de listo ne komencas je 1. Alivorte, la unua elemento de listo havas indekson 0, la dua havas indekson 1, la tria havas indekson 2 kaj tiel plu. Estas multaj teknikaj kialoj por tio, sed la plej grava por vi estas memori, ke ĝi komencas je 0.
Se ni volas elprinti "kato", tiam ni povas skribi:
print(dyr[0])
Tasko 2.2
Dette er en oppgave hvor du skal bruke funksjoner til å beregne gjennomsnittlig alder for en gruppe personer. Du får gitt en liste med navn og alder, og må skrive en funksjon som returnerer gjennomsnittsalderen.
Eksempel:
def beregn_gjennomsnittsalder(personer):
"""
Beregner gjennomsnittsalderen for en liste med personer.
Args:
personer: En liste med tupler, hvor hvert tuppel inneholder navn og alder.
Returns:
Gjennomsnittsalderen som et flyttall.
"""
total_alder = 0
for navn, alder in personer:
total_alder += alder
return total_alder / len(personer)
personer = [("Ola", 30), ("Kari", 25), ("Per", 40)]
gjennomsnittsalder = beregn_gjennomsnittsalder(personer)
print(f"Gjennomsnittsalderen er: {gjennomsnittsalderen}")
Oppgave:
Skriv en funksjon som tar inn en liste med navn og alder, og returnerer gjennomsnittsalderen. Test funksjonen din med følgende data:
[("Anna", 28), ("Bjørn", 35), ("Cecilie", 22), ("David", 41)]
Forventet resultat: 31.5
Eksempelliste:
Bonvolu kopii ĉi tiun kodon en vian programon.
bestoj = ["kato", "hundo", "kenguruo", "fiŝo", "muso", "gorilo", "ĉevalo", "bovo", "elefanto"]
El la ekzempla listo supre, provu akiri kaj print() la jenajn:
"kenguru""fiŝo""elefanto""ĉevalo"
Tasko 2.3
Kio okazas se vi provas skribi:
# Skriver ut det tiende elementet i listen 'dyr'.
# Skribas la dekantan elementon de la listo 'dyr'.
print(dyr[9])
Svaret
Kio okazas ĉi tie estas, ke vi provas akiri ion ekster la listo, do, ni havas 9 aĵojn en nia listo, la indekso numero 9 estas la 10-a elemento, do ni provas akiri la numeron 10 el 9 aĵoj, tio ne funkcias!
Tasko 2.4 - Elpreni kaj konservi
Provu elpreni valoron el la listo en Tasko 2.2, kaj poste konservi la valoron en variablo.
Svaret
bestoj = ["kato", "hundo", "kenguruo", "fiŝo", "muso", "gorilo", "ĉevalo", "bovo", "elefanto"]
la_besto = bestoj[3]
Kian valoron ricevas la_besto?
Svaret
"fiŝo"
Tasko 2.5a
Eliru du malsamajn bestojn kaj konservu ilin en variabloj, ekzemple dyret1 kaj dyret2.
Svaret
bestoj = ["kato", "hundo", "kenguruo", "fiŝo", "muso", "gorilo", "ĉevalo", "bovo", "elefanto"]
besto1 = bestoj[3]
besto2 = bestoj[5]
Tasko 2.5b
Uzu if kaj else kontrolon ĉu la bestoj estas egalaj aŭ ne.
Svaret
bestoj = ["kato", "hundo", "kenguruo", "fiŝo", "muso", "gorilo", "ĉevalo", "bovo", "elefanto"]
besto1 = bestoj[3]
besto2 = bestoj[5]
if besto1 == besto2:
print("La bestoj estas egalaj!")
else:
print("La bestoj ne estas egalaj... :(")
Kio okazas se vi provas akiri la saman indicon por ambaŭ bestoj nun?
Parto 3 - Ŝanĝi la valoron de io en listo
Tasko 3.1a
Provu skribi ĉi tiun kodon:
tall = [1, 5, 7, 11, 13, 17, 19, 23]
print(tall[3])
# Skriver ut det fjerde elementet i listen.
# Elspezas la kvaran elementon de la listo.
tall[3] = 137
print(tall[3])
Jen ni vidas, ke ni povas ŝanĝi la valoron en listo, valoroj en listoj funkcias plejparte kiel variablo.
Tasko 3.1b
Provu ŝanĝi alian indexon kun valoro.
Tasko 3.1c
Provu elprinti la tutan liston en ambaŭ print()-funkcioj, ĉu ĝi estas pli klara tiam?
Svaret
tall = [1, 5, 7, 11, 13, 17, 19, 23]
print(tall)
tall[3] = 137
print(tall)
Tio, kion ĉi tio elskribos, estas:
[1, 5, 7, 11, 13, 17, 19, 23]
[1, 5, 7, 137, 13, 17, 19, 23]
Parto 4 - Aldoni elementojn al listo
Tre ĉefe utila koncepto kun listoj estas ke oni povas aldoni aĵojn al listoj. Ni lernu du aferojn ĉi tie:
- Aldoni aĵojn al listoj
- Uzi funkciojn sur listoj
La dua eble ne diras al vi multe, sed ni rigardu kion tio signifas per ekzemplo! 👍
Tasko 4.1 - La funkcio append
Rigardu ĉi tiun liston:
dyr = ["katt", "hund", "kenguru"] # Bestoj
print(dyr)
Uzu la funkcion append por aldoni novan beston al ĉi tiu listo, poste elprintu la liston denove.
Kiel mi uzas append?
Ni povas uzi la funkcion append tiel:
bestoj.append("la besto")
Kiel tio funkcias? Bestoj estas listo, kaj listo havas aliron al granda aro da funkcioj, kiujn vi povas uzi.
Unu el tiuj funkcioj estas append.
Por uzi ĝin, vi skribu la variablonomojn de la listo, do bestoj en ĉi tiu kazo, poste punkto . poste la nomon de la funkcio, do append. Fine vi devas skribi inter la krampoj kion vi volas aldoni.
Zorgu, ke ĉi tiu “sintakso” estas tia, aŭ ĝi ne funkcios. La sekvaj ekzemploj ne funkcios:
bestoj append("la besto")bestoj. append("la besto")bestoj .append("la besto")bestoj.append "la besto"
Svaret
bestoj = ["kato", "hundo", "kenguruo"]
print(bestoj)
bestoj.append("elefanto")
print(bestoj)
Tasko 4.2
Tenu, poste provu aldoni kelkajn pliajn aferojn al la listo per pluraj linioj kun append.
Tasko 4.3
Petu la uzanton pri besto por aldoni uzante input, poste aldonu la beston al la listo.
Svaret
bestoj = ["kato", "hundo", "kenguru"]
print(bestoj)
besteto = input("Skribu novan beston: ")
bestoj.append(besteto)
print(bestoj)
Del 5 - Forigi elementojn el listo
Mi malamas katojn! Mi volas forigi katojn el la mondo! (🐱 -> 💀)
Ni nun rigardos du manierojn forigi aĵojn el listoj. Kaj tio estas per helpo de du novaj funkcioj:
removepop
remove funkcio
remove funkcio estas funkcio kiu povas esti uzata por forigi aĵojn el listo. Ĝi prenas kiel argumenton valoron, kiun ni volas forigi.
Tasko 5.1 - Uzu remove
Rigardu ĉi tiun liston:
dyr = ["katt", "hund", "kenguru"] # Bestoj
print(dyr)
Uzu la funkcion remove por forigi "katt" el ĉi tiu listo.
Sugero: ĝi uzas tute saman sintakson kiel append sed ni skribas remove anstataŭe.
Svaret
bestoj = ["kato", "hundo", "kenguruo"]
print(bestoj)
bestoj.remove("kato")
print(bestoj)
Tasko 5.2
Uzu remove por forigi aliajn aĵojn el la listo.
Tasko 5.3
Uzi append por aldoni ion al listo, poste uzi remove por forigi tion el la listo denove.
Svaret
bestoj = ["kato", "hundo", "kenguru"]
print(bestoj)
bestoj.append("elefanto")
print(bestoj)
bestoj.remove("elefanto")
print(bestoj)
Hvorfor er dette nyttig?
Eble ne estas tiom facile vidi kial ankoraŭ, sed ĝi estos utila kiam ni devas labori kun multaj datumoj!
pop funkcio
Ĉi tiu funkcio bedaŭrinde ne ludas pop-muzikon (💃🕺), sed ĝi povas “elfortigi” ion de listo. Eble estas plej bone se ni rigardas ekzemplon.
pop funkcio estas alia funkcio kiu povas esti uzata por forigi aĵojn de listo. Anstataŭ preni la valoron de tio, kion ni volas forigi, ĝi prefere prenas indekson por forigo.
Tasko 5.3 - Uzu pop
Komencu per ĉi tiu kodo:
# Dette er en liste over dyr.
# Ĉi tio estas listo de bestoj.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
Uzu pop por forigi "katt" el la listo.
Kiel mi uzas pop?
Ni povas uzi la funkcion pop tiel:
bestoj.pop(indekso)
indekso estas nombro kaj sekvas la saman sistemon kiel en Parto 2. Indecoj komenciĝas je 0, do se ni volas forigi la unuan elementon en listo, ni skribas bestoj.pop(0).
Svaret
bestoj = ["kato", "hundo", "kenguruo", "elefanto"]
print(bestoj)
bestoj.pop(0)
print(bestoj)
Tasko 5.4 - Uzu pop denove
Post sestiĝi "katt", provu poste forigi "hund" el la listo. Kion vi devas fari?
Svaret
bestoj = ["kato", "hundo", "kenguruo", "elefanto"]
print(bestoj)
bestoj.pop(0) # forigas katon
bestoj.pop(0) # forigas hundon
print(bestoj)
Kial vi du fojojn 0?
La logiko eble estas iom konfuza, sed rigardu ĝin tiel ĉi:
- Nia listo komenciĝas kiel
["kato", "hundo", "kanguruo", "elefanto"] - Ni uzas
pop(0) - Nun la listo aspektas kiel:
["hundo", "kanguruo", "elefanto"]
Kion vi rimarkas?
"hundo" nun estas elemento n-ro 0 en la listo! Kun pop la elemento estas forigita. Tio signifas, ke ĉio alia moviĝas.
- Ni uzas
pop(0)denove - Nun la listo aspektas kiel:
["kanguruo", "elefanto"]
Parto 6 - Ordigi liston
La lasta afero, kiun ni rigardos en Python 2, estas ordigi listojn. Ĉi tio estas tre grava funkcio.
Ĉi tie la funkcio sort estas uzata!
Tasko 6.1 - Uzu sort
Komencu per ĉi tiu kodo:
# Dette er en liste over dyr.
# Ĉi tio estas listo de bestoj.
dyr = ["katt", "hund", "kenguru", "elefant", "koala", "fugl", "papegøye", "mus"]
print(dyr)
Uzu la funkcion sort por ordigi la bestojn, poste elprintu la liston por vidi la diferencon. Ĉi tie funkcioj estas uzataj simile, sed vi ne bezonas enigi argumentojn. Se vi ne certas, kion tio signifas, rigardu la respondon sube.
Svaret
bestoj = ["kato", "hundo", "kenguruo", "elefanto", "koalo", "birdo", "papago", "muso"]
print(bestoj)
bestoj.sort()
print(bestoj)
Argumenter? (👊🤬 -> ☝🤓)
Tie ni povas vidi ekzemplon de funkcio sen argumentoj. Se vi memoras el “Python 3” tiam argumentoj estas tio, kion vi enigas inter la krampoj () en funkcio. sort ne bezonas argumentojn. Ni tamen devas inkluzivi la krampojn.
Tasko 6.2 - Ordigi nombrojn
Vi povas ordigi aliajn aĵojn ol tekston ankaŭ, provu ordigi liston de nombroj. Jen ekzempla listo (volonte uzu propran):
tall = [1, 5, 92, 12, 137, 49, 47, 137, 22, 0, 214, -3, -56, 23]
# Dette er en liste med tall.
# Ĉi tio estas listo de nombroj.
Svaret
tall = [1, 5, 92, 12, 137, 49, 47, 137, 22, 0, 214, -3, -56, 23]
tall.sort()
# Printer ut [-56, -3, 0, 1, 5, 12, 22, 23, 47, 49, 92, 137, 137, 214]
print(tall)
Ekstra - Aliaj listaj funkcioj kiuj povus esti utilaj
Se vi volas pli da informoj pri ĉi tiuj, vi povas iri tien: W3schools Python Lists
Ĉi tiu funkcio forigas ĉion de listo.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.clear()
print(dyr) # la listo estas malplena
Kopias la liston.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
andre_dyr = dyr.clone()
print(andre_dyr) # la listo estas sama kiel dyr
Kalkulas la nombron de elemento en listo.
dyr = ["katt", "hund", "kenguru", "elefant", "katt", "mus", "elefant", "katt"]
print(dyr.count("hund")) # 1 hundo en la listo
print(dyr.count("elefant")) # 2 elefantoj en la listo
print(dyr.count("katt")) # 3 katoj en la listo
Trovas la index-on de la elemento, kiun vi demandas. Ĝi trovas la unuan en la listo.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr.index("kenguru")) # elprenas 2, ĉar tie ĝi kuŝas.
Metas la liston en inversa ordo.
dyr = ["katt", "hund", "kenguru", "elefant"]
print(dyr)
dyr.reverse()
print(dyr) # elprenas ["elefant", "kenguru", "hund", "katt"]
