NemProgrammering.dk logo

Lister i Python

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

Information om denne video

Underviser: Simon Rotendahl   Video: 18:48   Lektion nr. 8 af 27

Jeg har en samling af data, hvordan gemmer jeg?

Ofte i programmering, vil du have data, som høre sammen, derfor kan det være smart at gemme det sammen. Det er her lister kommer ind. En liste er en datatype, der kan holder elementer af andre datatyper. Du kan både have en liste af tal, af strenge, ja selv lister, altså en liste af lister.

Vi skal lære om lister, da vi uden dem er meget begrænset, det er utrolig praktisk at kunne samle data på den måde. Lister hænger meget sammen med næste videos tema, nemlig løkker, da vi tit bruger dem sammen. Hvis du f.eks har en masse ølpriser, så kan det være smart at samle dem i en liste, så har du dem nemlig i samme variabel. Du kan så bruge en løkke til at lægge alle priser sammen, og finde gennemsnitsprisen!

Spørgsmål og kommentarer

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

  • Jonas C. siger:

    #find og print max + min:
    print(max([4,5,3,4,9,1]))
    print(max(A))

    Hvordan bruger jeg max og min funktionerne?

    Den øveste giver fint 9, men jeg kan ikke få den nederste til at give maxværdien fra listen.
    TypeError: ‘list’ object is not callable

    VH Jonas

    1. Simon R. siger:

      Hej Jonas,
      Har du defineret A til at være en liste? Altså noget i stil med
      A=[5,7,6,9]
      Og så
      print(max(A))

      Det lyder på fejlen som om at det mangler.

      1. Jonas C. siger:

        Hej Simon tak for svar.
        Min kone kom heldigvis hjem og fandt problemet, det var fordi jeg havde en liste i liste A, så den kunne ikke sammenligne en liste med en int.
        Kan jeg få python til at folde listerne i listen ud og sammenligne alle værdier, altså på tværs af lister i lister. Hvis det er meget kompliceret er det ok bare at svare Ja og så lærer jeg det senere :)

        VH Jonas

        1. Simon R. siger:

          Det er lidt kompliceret, alt efter hvad man vil. Hvis man kender formen (altså er det en liste at lister, eller er det en liste af lister af lister, osv.) på de lister man vil folde ud (man kalder det faktisk at “flatten” en liste) så er det relativt nemt, og kan gøres med for loops. Hvis man ikke kender formen, så er det lidt svære, og det kræver nogle mere specielle checks.

          Så kort sagt hvis det “bare” er sådanne lister [[1,2,3], [1,2,3], [1,2,3], [1,2,3]], så kan det gøre med to for loops, hvor du appender elementet på listen (se kode nederst). Hvis dine lister er af arbitrær form (altså ikke ens) f.eks [[1,2,3], [[1,2,3], [1,2,3]], [1,2,3]], så bliver det mere kompliceret.

          def flat(x):
          res = []
          for underliste in x:
          for e in underliste:
          res.append(e)
          return res