Forum: Python problem

Forum huvudsida -> Programmering -> Python problem

Sidor: 1

Till botten

lalindb 22:40 - 17:e April 2007 | Post #1
Medlem
Inlägg: 6


Skicka PM
Hej!
Jag sitter med ett nästan färdigt filofaxprogram men jag lyckas inte skapa funktionerna bläddra framåt och bläddra bakåt.
Mina "nya sidor" läggs in i en dictionary.
Väljer jag att visa alla sidor i min filofax kan det se ut som nedan.
17 maj: Norges nationaldag
2 november: Pappa fyller år
1 januari: Adjöss och tack för fisken...

Men jag vill kunna få mina items i någon slags ordning där 1 januari ligger före 17 maj osv.

Jag har valt att inte jobba med klasser när jag kodat.

Någon som orkar komma med tips på hur jag sorterar en dictionary?

//Lars




ozamosi 00:18 - 18:e April 2007 | Post #2
Administratör
Inlägg: 1129


Skicka PM
En dictionary är per definition osorterad, eftersom den bara är mappning mellan nyckel och värde. istället kan du skriva såhär:

en_lista = element, din_dict[element for element in din_dict]

Listor kan man sortera med sort()-funktionen, dvs en_lista.sort()
Den kommer att sortera baserat på nycklarna i första hand, och på värdena andra hand. Om du har dina datum som strängar kommer även det här bli fel, eftersom "februari" kommer före "januari" då f kommer före j, och "1 december" självklart kommer före "2 januari", eftersom 1 kommer före 2. Det kan man lösa genom att använda en speciell datatyp internt (kanske en lista - [månadsnummer, dag]) som man gör om till en sträng först när man skriver ut den, och som sorterar sig rätt.

-------------------------
Ljusblå



lalindb 11:47 - 18:e April 2007 | Post #3
Medlem
Inlägg: 6


Skicka PM
ozamosi kolla in koden som jag lagt in i forumet. Jag har skrivit några rader vid bläddrafunktionen och får programmet att skriva ut en aktuell sida om jag väljer 5).
Men jag vill att aktuell sida kommer upp automatiskt och att omman väljer funktionen 5) så bläddrar man ett steg eller "sida" framåt i filofaxen. Vilken kod och vart ska den skrivas in någonstans?
Hälsningar, Lars




Sidor: 1

Forum huvudsida -> Programmering -> Python problem
Atom feed

Du får inte posta i den här tråden | Till toppen