Seite 1 von 1

Sortieren von listen in listen...

Verfasst: Freitag 19. August 2005, 11:43
von patrickk
Hallo,

ich habe eine Liste aus [val1,val2,date]
Diese habe ich fuer 3 Werte, also:
so sieht die ausgabe aus:
[['wert1','wert2','2005,...'],[...],[...]]

Jetzt moechte ich das ganze nach dem Datum sortieren. falls nur die datumsangaben in einer Liste stehen, so geht es nat. einfach mit list.sort()
Aber wie mache ich es, wenn die Listen in den Listen sortiert werden sollen anhand des parameters [index aus liste][2], da datum auf index 2 liegt...

Hoffe ich habe mich verstaendlich ausgedrueckt.
[ [111], [2222], [333333] ]
in z.b. : [ [22222222], [333333333], [11111111] ]
111 solol hier einfach der liste1 entsprechen, in der das datum 1 enthalten ist...


Danke,


Patrick

loesung

Verfasst: Freitag 19. August 2005, 12:21
von patrickk
Hi, habe selber eine loesung gefunden, sorry, aber wer es braucht:

mit Dictionary:

Code: Alles auswählen

dict={}
for index in list:		
    tmp = index[2]			
    dict[tmp] = index 	
# Sort the dictionary keys
Keys = dict.keys()		
Keys.sort()
print("\n")
for tmp in Keys:
    title=dict[tmp][0]
    link=dict[tmp][1]
    date=dict[tmp][2]
    print (title+"\n"+date)
Edit (Leonidas): Code in Python-Tags gesetzt, bitte das nächste Mal selbst machen!

Re: Sortieren von listen in listen...

Verfasst: Freitag 19. August 2005, 12:30
von gerold
patrickk hat geschrieben: Aber wie mache ich es, wenn die Listen in den Listen sortiert werden sollen anhand des parameters [index aus liste][2], da datum auf index 2 liegt...
Hi Patrick!

Ich kann es im Moment leider nicht ausprobieren, da ich auf diesem Rechner nur Python 2.3 habe, aber ab Python 2.4 gibt es für sort() den zusätzlichen Parameter key.

Das könnte dann evt. so aussehen (ungetestet):

Code: Alles auswählen

l = [
    [3, 3, 2],
    [4, 4, 3],
    [5, 5, 1]
]
l.sort(cmp, lambda x: x[2])
Statt der Zahl 2 kann man ja auch eine Variable übergeben.
Ob das aber auch wirklich so funktionieren wird -- keine Ahnung.

mfg
Gerold
:-)

Edit: Es wäre nett, wenn du deinen Python-Code in python-Tags einschließen könntest.