DavidErikMollberg/kennsluromur huggingface dataset:
eða sýna fram á kosti erfða hér ég bara erfi hérna frá Object
Eins og svo sem er sjálfgefið það takið eftir því ef ég sleppi þessu þá gerist
Það þetta hefur raunverulega engin áhrif
Nú hva segjum sem svo að núna þurfi ég að búa til nýjan klasa
sem að er Stúdent klasi
og það vill svo til að Stúdent er jú líka Person er það ekki Nemandi er líka persóna
sérstaklega í ljósi þess að við erum hér í forritunarmáli sem er hlutbundið forritunarmál sem að býður upp á það sem heitir erfðir eða inheritance
Þannig að hvað geri ég þá í staðinn Jú ég bý mér til klasa hérna sem heitir Stúdent
hann erfir frá Person
Hérna nýti ég mér það að ég get sagt frá hverjum hann erfir hérna innan sviga segjum bara í augnablikinu að hann geri ekki neitt Hann bara passar hérna Það er engin útfærsla á Stúdent
En get ég þá sagt Stúdent einn
eigum við ekki að hafa vera hérna
Þannig að við skulum kalla þetta hérna Person einn
Person einn hérna Stúdent einn er Stúdent
og nú er spurningin
já ef ég geri þetta bara svona
Þá kemur hérna Init missing two required positional arguments first or last
Bíddu stendur á því Ég bjó ekki til Init fall í Stúdent
Nei ég bjó ekki til Init fall En það erfir Init fallið frá Person þannig að þegar ég bý til nýtt tilvik af Stúdent
Þannig að ef ég segi hér Stúdent
og prenta svo Stúdent
obs vitlaust skrifað
þá gengur það
Nú þá má spyrja sig
Bíddu hver var eiginlega tilgangurinn með þessu sýna að Stúdent er nákvæmlega eins og Person hérna
En gerum nú ráð fyrir því að Stúdent hafi einhverja aðra eiginleika eða það sem á ensku heitir attributes heldur en Person Gerum til dæmis ráð fyrir því að Stúdent eigi sér
university það er að segja í hvaða háskóla er viðkomandi
Þannig að til að koma því til skila
þá gæti ég núna
búið til Init fall sem er sérstakt
gæti ég sagt sem svo
að first name
og last name er eitthvað sem ég verð að setja en það er þegar skilgreint í Init fallinu í Person
Þannig að sko það væri kannski freistandi fyrst að se að gera þetta svona
Heyrðu gerum bara nákvæmlega það sama og er gert í Init fallinu í Person en bætum svo við hérna
eitthvað sem heitir university sem er sama sem
uni sem kemur inn
Ja no value for argument uni vegna þess að ég þarf að senda inn þriðja pa
parameterinn hér
og segjum bara r u fyrir Reykjavík University hérna
Gengur þetta
Nei Nú kemur hér
Stúdent object has no attribute Person first name
Þannig að ég get ekki farið að yfirskrifa hér
heldur Það sem að ég það sem ég á að gera
er það að ég á
vegna þess að almennt talað viljum við ekki fara að dupli kera kóða það er eitt af grundvallaratriðum í viðhaldi og læsileika vera ekki að dupli kera kóða
Þannig að í stað þess að dupli kera þennan kóða
þá vil ég nýta mér það að það er búið að skrifa Init fallið fyrir Person Og ég get gert það með því að segja hér
þar sem ég kalla beint á Init fallið
Self er tilvik af Stúdent sem að er verið að búa til Munið þið að það er kallað á Init fallið þegar tilvik af einhverju er búið til Það er í þessu tilviki er það tilvik af Stúdent þannig ég segi hérna
kall köllum á Init fallið í Person klasanum með self og það sér um að setja first name og last name
og þá verð ég að segja ja hvað er það sem á að koma hérna inn Jú Init fallið í Person þarf að taka last og first inn
gerum þetta svona
keyrum
úps ég sneri því við sjáið þið Þetta átti að vera first
og last svona
þannig að ég læt Init fallið í Person að sjá um að upphafsstilla breyturnar sem eru raunverulega sem ég erfði frá
fallinu fyrir Stúdent þá breytu sem er sérstök fyrir Stúdent Takið eftir að University er breyta
tilvika breyta sem er skilgreind fyrir Stúdent en Person á sér ekki svona breytu
Þannig að eini munurinn raunverulega á Stúdent og Person eins og staðan er núna
er sú að stúdent á breytu sem heitir University en Person á hann ekki En síðan erfum við hinar tvær first name og last name frá Person
Þið tókuð eftir því að það prentaðist út hérna John Smith
en það prentaðist hinsvegar ekki út
Person sem á sér ekki þessa breytu
Þannig að það sem væri eðlilegt er það að
fjölbindir líka þetta fall þetta fall s t r
svona Og nú er spurningin get ég nýtt mér það sem búið er að forrita í s t r fallinu í í Person
Sko fyrst kannski getum við prófað hvað ef við gerum þetta bara svona
bætum bara við hérna
self punktur
University heitir það
Þá fæ ég hvað Stúdent object has no attribute student first name
Bíðum nú við
þetta var nú eiginlega ágætt að þetta kom upp vegna þess að sko ástæðan fyrir því að ég get ekki vísað í first name hérna
þetta er prívat breyta í
Þetta er prívat breyta í Person
ágætt að reyndar að ja það sem ætti að gera nota s t r fallið bara í Person frekar heldur en
að vísa hérna beint í breytuna vegna þess að sem sagt takið eftir því ég er raunverulega að endurtaka kóða hérna
Þessi hérna hluti er nákvæmlega sami og þessi hérna hluti En það væri samt ágæt fyrst ég er kominn hingað og lendi í þessari villu
að hvernig myndi ég leysa þetta
Sem sagt vandamálið er það
first name og last name eru prívat breytur í Person Og það að þær skulu vera prívat það þýðir það einmitt að þær eru ekki aðgengilegar utan klasans
Ef það væri public þá gæti ég gert þetta svona Og reyndar er til eitthvað sem að heitir Protected líka að það þýðir það að breyta sem er protected hún á að vera aðgengileg í klasa sem að erfir
Það væri reyndar fróðlegt að sjá hvort að það gengur Mig minnir að protected breytur séu með einu undirstriki
Má ég sjá það Hvað gerist ef við breytum þessu svona
Get ég þá vísað í first name og last name í yfirklasanum eða parent klasanum
Já sjáið þið núna leyfir hann mér þetta vegna þess að first name núna
first name is protected það er að segja ekki prívat
Og hérna er sem sagt
last name is protected
Þannig að það er raunverulega hérna eru þrjú hugtök að ræða Prívat breyta private variable Þýðir það að hún er ekki aðgengileg utan frá
utan klasans og það er það sem ég lenti í áðan þegar ég reyndi að nálgast
undirstrik undirstrik first name í Stúdent klasanum Ég gat það ekki vegna þess að þetta var prívat breyta í Person klasanum Síðan eru public breytur sem að við höfum notað og þær eru bara aðgengilega utan frá yfirhöfuð en svo eru protected breytur sem eru eins og prívat nema að því leytinu til að
En þá kemur koma reyndar að þessu sem ég ætlaði að sýna sýna ykkur að það var það að ég farinn að endurtaka kóða hérna Ég er farinn að gera self firstname og self lastname
bæði í s t r fallinu fyrir Person og líka fyrir Stúdent
En spurningin er hvernig get ég endurnýtt þann kóða
að í stað þess að return a þessu að þá return a ég niðurstöðunni
fyrir self
hvað eigum við að segja einu bili og svo self punktur
Get ég gert þetta
Og hvað græddi ég á þessu
Ég raunverulega náði að endurnýta þann kóða sem að var þegar búið að búa til fyrir
Og einn kostur við það er til dæmis ef að sás ímyndum okkur það að nú væru þetta tveir aðilar sem að væru að skrifa þessa klasa Þetta væri mikið stærri klasar heldur en það sem ég er að sýna í þessu litla demo i Person klasinn væri hérna stór klasi með fullt aðgerðum og Stúdent klasinn væri það sömuleiðis
Það var einhver tiltekin forritari sem skrifaði Person og ég væri að skrifa hérna Stúdent
Ef að sá sem skrifar Person ákveður það að breyta s t r fallinu sínu
þannig að það skili þessu á einhvern annan máta
segjum svona komma á milli
og skrifa út hérna last name
Þá með því að gera þetta svona með því að kalla bara á s t r fallið fyrir
Þá fæ ég þá breytingu
þegar að sú breyting á sér stað
Ég þarf þá ekki að gera
sjálfur þá breytingu sem búið er að gera á Person object inu Ef ég hefði endurskrifað kóða þá hefði ég þurft að gera nákvæmlega sömu breytingu eins og gerð er í s t r fylli Person fyrir Person En prófum þetta núna
Þá sjáið þið nú fæ ég sko Jones komma Bobbi Smith John og það hefði kannski verið eðlilegt að hafa bil hérna á milli
Þannig ég
málið er það sem sagt að forritarinn sem að er að skrifa Person klasann hann ákveður að breyta því hvernig s hvernig Person hluturinn er skrifaður út Og ég þarf ekki að gera neina breytingu hjá mér þegar ég er að skrifa Stúdent klasann vegna þess að ég er að kalla einfaldlega á s t r fallið í Person
Já þannig að þetta var
hvernig maður nýtir sér erfðir
við getum síðan búið til annann klasa sem að erfir frá hann honum og hann er oft kallaður Child class eða Sub
þá gerum við það sem sagt með því að hafa nafn á þeim klasa sem við erfðum frá innan sviga
við algengt er þegar við
skrifum okkar Init fall að kalla á Init fallið í þeim klasa sem við erfum frá til þess að upphafsstilla þau
þær tilvika breyta sem þar tilvika breytur sem að þar eru skilgreindar
Og síðan framkvæmum við okkar eigin upphafsstillingu sem er þá sérstök fyrir okkar
object í þessu tilviki Stúdent Stúdent á sér raunverulega þrjár tilvikabreytur
að Stúdent á sér þrjár en Person á sér bara tvær Person hefur enga hugmynd um university breytu vegna þess að Person er ekki Stúdent
Og við náðum líka hérna fram ákveðni endurnýtingu í fyrir s t r fallið
kalla hreinlega á það og það skilar okkur streng
um háskólann hérna
til þess að skrifa út
hvernig Person object
hvernig Stúdent Object ið okkar lítur út
í forritun árið tvö þúsund og átján haustið tvö þúsund og átján
í gegnum þennan þankagang sem er svo nauðsynlegur þegar maður
fær eitthvert tiltekið verkefni sem lýst er á almenna máta
og þankagangurinn snýst raunverulega að brjóta verkefnið niður í einstakar einingar sem að saman standa þá og útfærir sem sagt einstakar einingar með föllum
Og verkefnið sem að ég er að fara yfir hér heitir flyers sem að hefur haft hérna vægi þrjátíu prósent í lokaprófinu og það er gefið hér upp að
skráin flights punktur t x t innihaldi upplýsingar um ferðalanga og lönd sem þeir hafa ferðast til
og upplýsingarnar í skránni eru með eftirfarandi sniði
John Sweden Mary Norway John England John Iceland og svo framvegis
þannig að við sjáum hér að hver lína geymir nafn ferðalangsins og landið sem hann hefur heimsótt
Og hér kemur jafnframt framt fram að nafn ferðalangsins og landið eru aðskilin með einu bili Við sjáum það er eitt bil hérna á milli
og síðan er gefið upp líka að engin ferðalangur hefur sama nafnið og hver ferðalangur getur hafa farið til margra landa Við sjáum þá til dæmis John hefur farið til Sweden John hefur farið til England England og John hafur farið til Iceland Og svo jafnframt einnig skal hafa í huga að hver ferðalangur kann að hafa farið til sama landsins oftar en einu sinni
fyrir hvern ferðalang prentar út þau lönd sem hann hefur ferðast til í stafrófsröð
og prentar út að lokum nafn þess ferðalangs sem að hefur ferðast til flestra landa
Svo stendur hérna ef að margir ferðalangar hafa farið til jafn margra landa skal prenta út þann fyrsta af þeim
Og svo er gefið upp líka að hvern ferðalang skal prenta út á tilteknu sviði sniði segi ég
Það kemur nafn ferðalangsins og svo kemur tvípunktur
sérhvert land í sér línu með tap karakter á undan hverju landi
þá er landið prentað út líka í stafrófsröð England Iceland Sweden fyrir John
Iceland Norway fyrir Mary og China fyrir Phil Og svo að lokum hérna átti að prenta út þann ferðalang sem hefur komið til flestra landa
og það er hérna John has been to three countries
Já nú þannig að spurningin er hvernig
þankagangurinn sem að þarf að nota
Og eins og áður við höfum höfum farið í gegnum þá er gott að byrja á því raunverulega að skrifa einhvers konar algrím að lausninni skrifa hreinlega bara upp í orðum hvernig maður ætlar að leysa verkefnið
Nú það var gefið upp að
það ætti að lesa úr tiltekinni skrá
sem hét flyers Þannig að við getum sagt hér að
kannski það fyrsta sem við þurfum að gera er
Og yfirleitt það sem við gerum þegar við opnum skrá við við skilum til baka einhvers konar skráa straumi
Þegar við erum búin að að opna skrána og fáum til baka skráastraum
þá þurfum við að lesa gögn
Nú hvaða gagnaskipanina ættum við að nota hér
Ef að aðeins hoppum til baka
athugaðu að enginn ferðalangur hefur sama nafnið
Það bendir það er eiginlega svona einhvers konar ábending um það að við getum notað uppflettitöflu ef við getum geymt löndin sem að viðkomandi ferðalangur ferðast til í uppflettitöflu þar sem að lykillinn er nafn ferðalangsins vegna þess að enginn ferðalangur hefur sama nafn Það er það sem gefið
Þannig að þá er eðlilegt að nota uppflettitöflu þar sem að nafn ferðalangsins er lykillinn og löndin sem hann hefur ferðast til er gildið
read file contents into a dictonary
þá þurfum við að prenta út gögnin
tilgreina hér þegar við erum að búa til okkar algrím Við getum sagt bara hérna
print information from dictionary
Og það síðasta sem að átti að gera
það var það að prenta út hvaða ferðalangur hefur farið til flestra landa
Þannig að við getum sagt hérna
name of person who has visited most countries
Þannig að þetta er svona
high level algóritmi high level Þá meina ég það að við erum ekki að tilgreina í einhverjum
á nákvæman máta hvað það er sem að við ætlum að gera heldur tökum svona sérhvert skref fyrir sig og lýsum því á almennan hátt og eigum síðan að geta útfært sérhvert skref
Og þá er í í útfærslunni sjálfri sjálfri þá getum við farið að velta okkur upp úr smáatriðunum
hvernig er best að byrja á þessu Ja einn möguleikinn væri einn möguleikinn væri sá að hreinlega bara byrja á því að búa til main föll
main forrit
Og það fyrsta sem að við eigum að gera er að opna skrá Og við töluðum einmitt um það
að við ættum að fá fælstraum til baka
Nú það var reyndar tilgreint í þessu dæmi að skrárnafnið væri flights punktur t x t
þannig að það var reyndar ekki beðið um það að notandinn myndi slá inn skráarnafnið þannig að fyrst að svo er í þessu dæmi þá gæti ég sagt sem svo að fælnafnið væri bara flights
punktur t x t
í gæsalöppum þetta er strengurinn flights punktur t x t Þannig að takið eftir því að að
það þýðir að ég get ekki slegið inn nafn skrárinnar heldur er það að einhverju leyti harðkóðað það á alltaf að nota nafnið flights punktur t x t í þessu forriti Og það er bara það sem var beðið um í þessu tiltekna dæmi
Það má segja að einhverju leyti væri eðlilegra að notandi mundi slá þetta inn þannig að við gætum verið með mismunandi skráarnöfn hérna
En allavega þetta er það sem var beðið um
Nú við ætlum að kalla á hérna fall sem heitir open files sem opnar skrána þannig að við skulum bara að útfæra það
það heitir open fæl
köllum við á open fallið er það ekki Sem er innbyggt fall í Python og þetta er eitthvað sem við höfum gert margoft áður
Og við ætlum að opna það í read mode
en það sem getur komið upp er að skráin finnist ekki
Þannig að væri þá ekki eðlilegt að hafa hérna
og except
ja ef hún finnst þá skilum við bara files straumnum til baka
og notum hérna file not found error Þetta er eitthvað sem við höfum líka margoft gert
Vúps þetta átti að vera svona
og ef að þetta gerist þá ætlum við bara skila hérna none í þessu tilviki
er eðlilegt að
prófa forritið Sem sagt
Þannig að ef við keyrum þetta núna
já þá sé ég hérna að þetta á að vera fæl name svona
Ég keyri hér
og það keyrir vissulega Ég veit ekki almennilega hvort að ég fékk fæl strauminn til baka hérna eða hvort ég fékk none
Nú til þess að bara að tékka á því þá gæti ég hreinlega sagt hérna hvað er þetta hérna fæl stream
og ég keyri þá sé ég reyndar hann er none sem þýðir þá að það hefur komið upp exception hérna
það hefur ekki getað opnað þessa skrá
Og hva af hver er ástæðan fyrir því
Ja tek takið eftir því að ég er staddur hérna í einhverri einhverri möppu Users Hrafn Documents Python en
forritið mitt er statt hérna í
með forritskráin segi ég flyers punktur p ypsilon Hún er
geymd í undirmöppu sem heitir exam
Þannig að ef ég fer hérna niður í exam möppuna
og keyri forritið héðan
sem sagt fæl þetta er raunverulega fæl  straumur þetta er þetta er útprentun svona prentast fæl straumur út að ég sé hérna að
nafnið er flights punktur t x t og ég sé hver encoding á skránni er þannig að nú veit ég að það tókst að opna skrána Nú fæ ég ekki none lengur til baka
Þannig að bara það sem ég er búinn að gera núna ég er búinn að fullvissa mig um það að þetta open fæl fall virkar
Þannig að þá getum við sagt við erum búin með þennan fyrsta hluta hérna open fæl
Hluti númer tvö read file contents in to a dictonary
hvað eigum við að kalla það
Ég kalla það bara create flyers dictonary
Það tekur þá inn fæl straum
Það tekur inn fæl straum Og hvað gerum við yfirleitt við svona fæl straum Jú við lesum hann línu fyrir línu
og gerum eitthvað fyrir hverja línu
Þannig að ef ég les hana línu fyrir línu þá get ég sagt hérna for line in filestream
þá þarf ég að sækja nafnið og landið
og ein leið væri sú að segja bara nafnið og landið
er þá sama sem
þessi lína sem ég er með höndunum og ég splitta henni
Munið þið það að það er space hérna á milli og splitt notar nefnilega sjálfgefið space
sem splitter ef það væri til dæmis tvípunktur hérna á milli
þá myndi ég setja tvípunkt hérna inn í splitt fallið en sjálfgefið er að það splitti á spac i
og þá fæ ég
nafnið í munið þið að splitt skilar raunverulega lista
Í þessu tilviki væri þetta listi af tveimur stökum og ég fyrsta stakið fer í name og annað stakið fer í country
Þannig að þannig að þe það er það sem ég er búinn að gera hér
er að ég þegar ég les skrána í fyrsta sinn þá verður John name og Sweden verður country
Og ég þarf að koma þá nafninu inn í dictonary ið En þá skiptir máli er nafnið þegar komið inn
Að því að ef að nafnið er þegar komið inn þá þarf ég að bæta þessu landi
það safn af löndum sem viðkomandi hefur farið í eða komið til En ef nafnið er ekki til
þá verð ég að búa til nafnið sem nýjan lykil í þessari uppflettitöflu
Þannig að ég get þá sagt hérna ef að nafnið
dictonary og hvað ég er ekki búinn að búa hana til ég hefði eiginlega þurft að búa hana til hér í upphafi og segja hérna
köllum hana flyers og hún er þá náttúrlega bara tóm þetta er tómt dictonary í upphafi
Þannig að ef að nafnið er ekki í flyers
þá get ég
flayers of name verður þá
það land sem að viðkomandi var landið country hérna sem við fengum úr fyrstu línunni í skránni
Flayers of name verður country En þá er spurningin
hvernig ætlum við að halda utan um löndin
við gætum fengið sama landið
í upplýsingarnar í uppflettitöflunni
Þannig að þetta svona bendir til þess að það væri kannski sniðugt að nota set
það er að segja mengi af löndum þannig að ég get sagt hérna fly is a name er sama sem country takið eftir þessu
þetta hér við sjáum að þegar ég fer með músina hérna yfir að country er hérna sett vegna þess að ef ég gæ ég er með hérna slaufusviga opnast og slaufusvigi lokast og inni í því er ég með eitt stak Þetta er þá ekki dictionary vegna þess að í dictionaries þarf lykil og gildi en country þarf og bara eitt stak
nei fyrirgefið mengi þarf bara eitt stak Þannig að þetta er þá það sem ég er búinn að setja inn í lykilinn name
fyrir uppflettitöfluna flayers þá er ég búinn að búa til eitt mengi sem inniheldur bara eitt stak sem að er
inn í eitt inn í mengi fyrir lykilinn John
annars ef að nafnið er til hvað geri ég þá
Ja þá segi ég
að fyrir þetta nafn fyrir þennan ferðalang
fly is a name mun þá gefa mér mengið hans þá get ég bara bætt við
þessu landi
Takið eftir þessu
Og ég get bætt við mengi með því að segja add og hverju á að bæta við Jú þessu
landi sem að ég er að lesa Þannig að ef við aftur förum til baka hérna í þessa skrá flights
fyrst þegar við sáum John þá búum við mengi sem inniheldur bara Sweden
Þegar að við sjáum John aftur þá er John þegar til í uppflettitöflunni
og þá er country ið England
og það þá þýðir það að nafnið
er þegar í flayers þannig að þetta verður ekki true þetta verður false þá förum við í else hlutann Og þá segjum við flyers af John
sem gefur okkur mengið hans bætum við þessu country sem væri þá England í þessu tilviki Og þar með væri í menginu hans John þegar komið Sweden og England
Allt í lagi þannig að þegar þetta er þá það sem við gerum fyrir sérhverja línu í straumnum okkar og svo verðum við náttúrulega að muna eftir því að skila til baka
þessu dictonary sem að vorum að búa til
Hérna væri kannski gott að skjóta inn
dockstring creates a dictionary where
já from the given filestream getum við sagt
the name is the key
the set of countries
is the value
Þetta er raunverulega það sem að þetta gerir hérna
Þetta hérna fall okkar
the given filename and returns the corresponding stream Er það ekki Svona
Þannig að við erum bún að búa til
fall sem heitir create flayers Við vitum ekki alveg hvort að það virkar hjá okkur þannig að eðlilegt væri núna að prófa það
Og nú er spurningin hvernig getum við séð hvort að þetta virki Ja prentun bara út flayers hérna
prentun bara út flayers
keyrum þetta aftur
Og hvað fáum við John mengið hans er England Iceland og Sweden
Mary mengið hennar er Norway og Iceland og Phil mengið hans er China Og passar það ekki miðað við þetta hér
John Sweden England Iceland Mary og Norway og
hvað var það Norway og Iceland og hérna sjáum við til dæmis að Mary kemur til kemur tvisvar til Noregs
en kemur bara aðeins einu sinni fyrir í menginu
Vegna þess að það er akkúrat það sem að mengi
geymir er það ekki bara eitt tilvik af sérhverju staki
af sérhverju gildi
Þannig að aftur sjáið hvað er mikilvægt að prófa strax þau föll sem við skrifum þannig að við sjáum strax hvort þau virki
Ekki skrifa fullt af kóða fyrst og keyra svo forritið í lokin vegna þess að ef að villa kemur upp þá þá vitum við ekki almennilega hvar villann er og þá fer meiri tími í það að
og sem sagt eyða raunverulega tíma að óþörfu
Nú hvað var það næsta
read file contents into a dictonary við erum bún að því print information from dictonary Já við þurfum að prenta þetta út á þann máta sem að
tekur inn flayers dictionary
get Þess vegna skrifað út dockstring strax þetta prints
ordered by key
að því að það var
við áttum að skrifa ef við hoppum til baka
þá myndi hann skrifa þetta út þannig
raðað á nafnið og nafnið er akkúrat lykillinn
the value is also printed ordered
Það er að segja gildin í hérna
fyrir lykilinn munið þið að gildin eru löndin við eigum líka að prenta þau út þannig að þau komi út röðuð
Já hvernig förum við að þessu
við þurfum að komast í lyklana er það ekki Við þurfum að ítra gegnum
þessa upp flettitöflu
þannig að við höfum lykilinn
í hverri ítrun
flayers punktur keys
flayers er uppflettitaflan
flyers punktur keys gefur okkur þá lyklana
Þannig að þetta mun gefa okkur
safn af lyklum
Og ef við hugsum ekkert um
hver hvort þetta er raðað eða ekki í augnablikinu
og hugsum bara um ítrununina sjálfa þannig að í sérhverri ítrun er ég með nafn úr lyklunum
Það er að segja nafnið á ferðalangi
þá get ég prentað það út Ég get sagt hérna print
og nú ætla að nota format streng
og það átti að koma tvípunktur á eftir
og þá geti sagt hérna format
og name
Þannig að ég ítra í gegnum lyklana fyrir sérhvert nafn sem ég fæ þá prenta ég út nafnið með og svo kemur tvípunktur Og raunverulega væri sniðugt fyrir mig að prófa þetta bara strax núna
halda ekkert áfram með útfærsluna bara virkar þetta sem ég er búinn að gera að ítra í gegnum lyklana í uppflettitöflunni
Og ég er búinn búinn að kalla hérna á print dict þannig að ég get bara prófað þetta strax
sjáið þið John Mary og Phil
Ég fæ þetta svona
þetta nöfnin komu hér í stafrófsröð Fyrst kom John svo kom Mary og svo kom Phil Þannig að ég var að einhverju leyti heppinn að ég gat
reyndar er það þannig að sko við getum ekki treyst alveg á röðunina vegna þess að þetta er ekki ordered collection munið þið uppflettitöflur eru ekki ordered
ja gætum við prófað hvað gerist ef við setjum til dæmis
Setjum hann hérna fremst
Keyrum þetta aftur
Sjáið þið nú kemur Phil á undan
það sem við ættum þá að gera hér
er að þegar við fáum lyklana úr uppflettitöflunni þá getum við bara raðað þeim við getum bara kallað á sorted hérna
keyrt þetta síðan aftur
Og þá sjáum við að við fáum John Mary og Phil
Þannig að það er ljóst að við þurfum eitthvað hér að auki
þurfum að aðra for lykkju er það ekki sem fer í gegnum
flyers af name Hvað hvað gerir hvað skilar flayers af name
Af því að nafnið er hérna
og fyrir sérhvert land sem ég er með í höndunum þá ætla ég að prenta út landið úps
hvernig geri ég það Ég ætla aftur að nota format streng ég ætla að nota tap það átti að koma tap karakter
og þá getum við sagt svona og format erum þetta
og hvað erum við að fara að skrifa út Það er landið
Þetta er eru þau vissulega þau lönd sem að viðkomandi kom til en þau eru ekki röðuð Það er vegna þess að mengi er ekki raðað mengi er bara unordered collection Þannig að þegar ég bað um flyers af name þá fékk ég mengið sjálft en ég fékk ekki raðaða útgáfu af því
En þá get ég gert þá sambærilegt og áðan ég get kallað bara á sorted af flayers name