NemProgrammering.dk logo

Dictionaries i Python

Lær Python programmering » Dictionaries i Python # 10
Inkluderet:
Livstidsadgang
27 videolektioner
7 timers undervisning
Stil spørgsmål
Kursusbevis

Information om denne video

Underviser: Simon Rotendahl   Video: 17:01   Lektion nr. 10 af 27

Lister er ikke altid det meste praktiske

Vi har kigget på lister, og fantastiske som de er, så er der situationer, hvor en anden løsning er bedre, nemlig dictionaries. Dictionaries og lister er dog faktisk det samme. Hvis du har en liste så er det femte element i din liste associeret, med tallet 4 (da vi jo starter fra 0 når vi tæller elementernes plads) og sådan er det. En dictionary giver dig muligheden for selv at definere denne association, så hvis listen indeholde dine kollegers emails, så kan du associere stens email (som er et element i listen) med hans navn, som så bliver indexet, eller nølgen/key, som det hedder. Derfra også navnet dictionary, det kommer fra at du har et ord du vil slå op (nøgle/key) og du får så en beskrivelse (værdi/value) ud.

I næste video start vi på Objektorienteret programmering, et nyt paradigme!

Spørgsmål og kommentarer

Kun medlemmer med adgang til dette kursus kan stille spørgsmål og kommentere. Bliv medlem her!

  • John E. siger:

    Hej Simon,
    Her i Dict øvelsen får jeg et lidt andet output end du gør
    print(mig.keys())
    print(mig.values())
    print(mig.items())
    giver:
    dict_keys([‘navn’, ‘alder’, ‘job’, ‘sprog’])
    dict_values([‘Simon’, 22, ‘murer’, ‘Python’])
    dict_items([(‘navn’, ‘Simon’), (‘alder’, 22), (‘job’, ‘murer’), (‘sprog’, ‘Python’)])

    altså med betegnelse på strengen. Er det pga python version 3.8.1 eller ?
    mvh
    John

    1. Simon R. siger:

      Hej John,

      Det er et rigtig godt spørgsmål, og det er faktisk lige præcis noget med Python versionerne at gøre. I Python 2 giver alle de tre ting nemlig noget tilbage af typen liste (indikeret af kun []), hvor i Python 3 giver det et instans af en klasse tilbage, nemlig klasserne dict_keys, dict_values og dict_items. Det med klasser kommer til at give mening når du kommer til OOP videoerne, for nu, så tænk på det som typer, hvor at mig.keys() giver noget tilbage af typen list i Python 2, men i Python 3 giver den noget tilbage af type dict_keys. Du kan få det samme som jeg gjorde ved at lave det om til en liste, det gør du således:
      print(list(mig.keys()))

      Hvis du gerne vil se hvad type noget har, så skriver du type() rundt om, så du kan f.eks prøve de følgende to linjer, det hjælper måske på forståelsen, hvis du prøver det så husk at for nu skal du bare tænke på ordet class som type
      print(type(mig.keys()))
      print(type(list(mig.keys())))

      Når jeg i videoerne bruger Linux og kun skriver python så bruger jeg Python 2, det er fordi det er standard på Linux, jeg bør skrive python3 (for at bruger Python 3), men det glemmer jeg nogle gange, da det er få gange det faktisk gør en forskel, dette er dog en af de gange. Du må undskylde forvirringen.

      Mvh.
      Simon