Dict. im Dict. sortieren

  • Hi!
    Also folgendes Problem:
    Ich möchte in Python ein Dictionary im Dictionary sortieren.
    Beispiel:
    dict = {'a' : { 'c' : 1, 'b' : 2 } }, 'd' : { 'f' : 3, 'e' : 4 } }
    Das will ich jetzt so sortiert haben:
    dict = {'a' : { 'b' : 2, 'c' : 1 } }, 'd' : { 'e' : 4, 'f' : 3 } }

    Normales 'in die Liste Konvertieren + Sortieren' funktioniert nicht, da die values 'a' und 'd' sortiert werden, und nicht die innere Dict.
    Da man eine dict an sich im eigentlichen Sinne nicht sortieren kann, kann die Ausgabe ruhig so aussehen:

    listdict = [['a' ,('b' : 2), ('c' : 1)],['d' ,('e' : 4), ('f' : 3)] ]

    thx

    Einmal editiert, zuletzt von try (22. Juli 2009 um 11:15)

  • Ich habe keine Ahnung von Python und weiss auch nicht was ein dictionary ist - kann mir aber vorstellen, dass es wie ein Array in PHP ist? Wenn dem so ist, kannst du nicht das äussere dictionary sortieren, dann mit einer Schleife die inneren dictionaries durchgehen und die ebenfalls sortieren? Also sowas:

    Code
    dict = {'a' : { 'c' : 1, 'b' : 2 } }, 'd' : { 'f' : 3, 'e' : 4 } }
    for key in dict.keys():
      key.sort()
  • phore:


    Beispiel:
    dict(ionary) = {'a' : { 'c' : 1, 'b' : 2 } }, 'd' : { 'f' : 3, 'e' : 4 } }


    Hab nur mal schnell angeschaut, was in PHP ein array ist, scheint ein dict. in Python zu sein :D

    dict.keys = ['a', 'd'] ;)
    In anderen Worten: Dein Skript sortiert nur die äußere dict.

  • Hm, Python scheint das komisch zu machen. Um die äussere dict zu sortieren müsste man doch dict.sort() machen.
    Naja egal, was ist wenn du 2 Schleifen verschachtelst?

    Code
    dict = {'a' : { 'c' : 1, 'b' : 2 } }, 'd' : { 'f' : 3, 'e' : 4 } }
    for key in dict.keys():
      for inner_key in key.keys():
        inner_key.sort()

    Einmal editiert, zuletzt von phore (22. Juli 2009 um 16:25)