Sortieren eines Tupels

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Sortieren eines Tupels

Beitragvon alpha » Mittwoch 22. April 2009, 12:25

Hallo Zusammen,

ich habe Probleme sowas

Code: Alles auswählen

dict = (
            [2,[["hallo1",0],["Hello1",0],["/picpath/pic1.jpg",0]]],
            [4,[["hallo2",0],["Hello2",0],["/picpath/pic2.jpg",0]]],
            [1,[["hallo3",0],["Hello3",0],["/picpath/pic3.jpg",0]]],
            [5,[["hallo4",0],["Hello4",0],["/picpath/pic4.jpg",0]]],
            [3,[["hallo5",0],["Hello5",0],["/picpath/pic5.jpg",0]]]
        )


mit dict.sort() zu sortieren. Ich möchte nach der vorderen Zahl sortiert haben. Weiß jemand wie man sowas macht?

Danke und Gruß
alpha
lunar

Beitragvon lunar » Mittwoch 22. April 2009, 12:32

Das ist kein Wörterbuch, also solltest du es auch nicht "dict" nennen. Das Ganze ist ein Tupel, und Tupel kann man nicht in-place sortieren.

Zum Sortieren kannst du entweder das "key"-Argument von "sorted()" benutzen, oder aus "dict" ein echtes Wörterbuch machen, und dessen Schlüssel sortieren. Letzteres allerdings ist momentan unmöglich, da du das Builtin "dict()" neu gebunden hast, weswegen du den "dict()"-Konstruktor nicht aufrufen kannst.

Im Allgemeinen ist diese Datenstruktur meines Erachtens zu verschachtelt, ein eigener Typ für die inneren Listen wäre besser geeignet.
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Beitragvon alpha » Mittwoch 22. April 2009, 12:43

Hallo Lunar,

ich gebe Dir recht die 2te verschachtelung ist unnötig.

Code: Alles auswählen

d = (   
            [1,["hallo1",0],["Hello1",0],["/picpath/pic1.jpg",0]],
            [2,["hallo2",0],["Hello2",0],["/picpath/pic2.jpg",0]],
            [3,["hallo3",0],["Hello3",0],["/picpath/pic3.jpg",0]],
            [4,["hallo4",0],["Hello4",0],["/picpath/pic4.jpg",0]],
            [5,["hallo5",0],["Hello5",0],["/picpath/pic5.jpg",0]]
        )


sorted(d) funktioniet so wie ich es wollte. Danke für die Hilfe.

Grüße
alpha
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Beitragvon CM » Mittwoch 22. April 2009, 13:02

So ist d immer noch ein Tupel und d.sort() wird nicht gehen, wohingegen sorted(d) eine Liste zurückgibt. Das kann natürlich gewollt sein, aber das glaube ich nicht ...
Mach' doch einfach

Code: Alles auswählen

d = [ ... ] # statt d = ( ... )
d.sort()

d.sort() funktioniert in-place.

HTH
Christian
alpha
User
Beiträge: 195
Registriert: Freitag 23. Mai 2003, 23:24
Wohnort: Ulm

Beitragvon alpha » Mittwoch 22. April 2009, 13:53

Oder so :D
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Mittwoch 22. April 2009, 14:40

Wobei die Datenstruktur immer noch nach einem dict riecht ... zumindest wenn die erste Zahlenspalte IDs sein sollen!
Benutzeravatar
Goswin
User
Beiträge: 361
Registriert: Freitag 8. Dezember 2006, 11:47
Wohnort: Ulm-Böfingen

Datenbuch

Beitragvon Goswin » Freitag 24. April 2009, 07:43

lunar hat geschrieben:Das ist kein Wörterbuch.

Ich lobe dich für deine Mühe, dich auf Deutsch auszudrücken. *applaus*
Aber für "Dictionary" sollte man nicht "Wörterbuch", sondern "Datenbuch" sagen.
lunar

Re: Datenbuch

Beitragvon lunar » Freitag 24. April 2009, 09:26

Goswin hat geschrieben:Aber für "Dictionary" sollte man nicht "Wörterbuch", sondern "Datenbuch" sagen.

Warum?
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Re: Datenbuch

Beitragvon numerix » Freitag 24. April 2009, 09:58

lunar hat geschrieben:
Goswin hat geschrieben:Aber für "Dictionary" sollte man nicht "Wörterbuch", sondern "Datenbuch" sagen.

Warum?


Ja, das wüsste ich auch gerne.
Denn ebenso wenig wie Wörter drin stehen, ist es auch ein Buch.

Dann schon eher "assoziatives Feld". Aber das versteht nicht jeder.
Ich finde "Wörterbuch" in Ordnung. :)
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Re: Datenbuch

Beitragvon EyDu » Freitag 24. April 2009, 10:02

Goswin hat geschrieben:Aber für "Dictionary" sollte man nicht "Wörterbuch", sondern "Datenbuch" sagen.

Wenn du unbedingt verhindern möchtest, dass dich jemand ohne Nachfrage versteht: dann ja ;-) Wörterbuch ist in der Informatik eine gängige Übersetzung für Dictionary. Datenbuch ist mir in fünf Jahren Studium noch nie untergekommen.
Das Leben ist wie ein Tennisball.

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]