Seite 1 von 2

Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:07
von zizou2981
Hallo,

das Beispiel unten zeigt die Rückgabewert (Dictionary) von einem Programm, mit dem ich arbeite.

Code: Alles auswählen

NEW: 0
    Element01 = 1
    Element02 = 2
NEW: 1
    Element01 = 3
    Element02 = 4
NEW: 2
    Element01 = 5
    Element02 = 6
meine Frage ist, ob das Dictionary so sein sollte: {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}

danke

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:10
von BlackJack
@zizou2981: Dictionaries haben keine Ordnung und das was Du da als angebliches Ergebnis zeigst kann so nicht sein, weil es jeden Schlüssel nur einmal geben darf.

Code: Alles auswählen

In [203]: {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}
Out[203]: {'NEW': {'Element01 ': 5, 'Element02 ': 6}}

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:26
von zizou2981
@BlackJack: man darf doch ein Key mehrmals eingeben. aber in diesem Fall greiftman auf die Values wie folgt zu:

Code: Alles auswählen

>>> S = {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}
>>> S[(S.keys())[1]]["Element01 "]
3

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:30
von EyDu
Zeige doch mal richtigen Code und bastele keinen zusammen und tue dann so als ob du diesen im interaktiven Interpreter ausgeführt hättest. Was du da zeigst funktioniert nämlich nicht.

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:32
von BlackJack
@zizou2981: Nein es kann keinen Schlüssel mehrmals geben. Und Dein Quelltext kann so schon wieder nicht funktionieren eben weil das Wörterbuch am Ende nur *ein* Schlüssel/Wert-Paar enthält:

Code: Alles auswählen

In [204]: S = {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}

In [205]: S[(S.keys())[1]]["Element01 "]
---------------------------------------------------------------------------
IndexError                                Traceback (most recent call last)

/home/bj/<ipython console> in <module>()

IndexError: list index out of range

In [206]: len(S)
Out[206]: 1

In [207]: S
Out[207]: {'NEW': {'Element01 ': 5, 'Element02 ': 6}}
Du solltest Dir keine Python-Shell-Sitzungen ausdenken sondern das mal tatsächlich ausprobieren.

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:36
von zizou2981
@alle: sorry es war kein absicht. aber eine Antwort auf meine Frage gibt es bis jetzt immer noch nicht!

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:37
von sparrow
Dann stell eine Frage die man beantworten kann...

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:39
von zizou2981
wenn du die Frage nicht beantworten kannst, dann bleib bitte weg!

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 19:46
von sparrow
Achso, ich dachte du hättest die Antwort schon heraus gelesen:
zizou2981 hat geschrieben:meine Frage ist, ob das Dictionary so sein sollte: {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}
Die Antwort ist: Nein

Und irgendwann solltest du dein Problem erklären wenn du es nicht selbst gelöst bekommst, und nicht durch schlechte Manieren auffallen.

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 20:02
von zizou2981
ich habe es jetzt gelöst. Außer BlackJack: steckt euch die Antwort irgendwohin!

Re: Richtige Dictionary-Ordnung...

Verfasst: Montag 16. Juli 2012, 20:05
von /me
zizou2981 hat geschrieben:ich habe es jetzt gelöst.
Das ist schön für dich.

Wir hätten dir auch gerne dabei geholfen, aber du warst leider nicht in der Lage das Problem sinnvoll zu beschreiben.

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 02:13
von Leonidas
zizou2981 hat geschrieben:ich habe es jetzt gelöst.
Und wie hast du das jetzt gelöst? Wohl kaum mit einen normalen Dictionary.

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 19:34
von Hyperion
zizou2981 hat geschrieben:ich habe es jetzt gelöst. Außer BlackJack: steckt euch die Antwort irgendwohin!
Ich finde Dein Verhalten ziemlich unhöflich und kindisch! Glaubst Du auf diese Weise wirst Du in Zukunft noch Hilfe von Leuten hier bekommen? Solche Kommentare bleiben durchaus länger im Gedächtnis...

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 21:44
von zizou2981
@Leonidas: das Programm gibt hier eine Liste von Dictionarys und die Zahlen 0, 1 und 2 sind die indexe der Dictionarys.

Code: Alles auswählen

[{Element01 : 1 , Element02: 2}, {Element01 : 3,  Element02 : 4}, ....]
@Hyperion: meine Aussage war nicht an alle sondern an einige Idioten gerichtet, die nach zwei selbst entwickelte Methoden (wahrscheinlich um 1+1 zu rechnen) gedacht haben, dass sie die Python-Götte sind. Glaub mir statt das Kommentar zu schreiben hätte ich ihnen auch liebe was auf die Fresse gegeben und das in einer While-Schleife mit einem Timeout von 60min und zwar ohne break. Also wer nicht helfen möchte, der kann seine Hilfe sparen, und danke an alle, die versucht haben zu helfen.

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:01
von cofi
Oh ja, es ist weit besser nur manche statt allen beleidigen zu wollen :roll:

Statt Leuten zu drohen ihnen auf die "Fresse [zu] geben" solltest du lieber nochmal deine Frage lesen, ob sie denn wirklich zu beantworten ist oder ob gar erkennbar ist was du eigentlich sagen willst.

Mir ist es jedenfalls nicht klar. Aber vielleicht bin ich bloß einer dieser "Idioten".

Auch wenn ich nicht glaube, dass du es brauchst (hat man ein dict mit aufsteigenden Integer Schluesseln, will man meist eine Liste), werfe ich mal OrderedDict in den Raum: http://docs.python.org/library/collecti ... rderedDict

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:04
von BlackJack
@zizou2981: Alle die geantwortet haben sind wohl über 1+1 hinaus und ich sehe auch nicht ganz ein warum ich von Deinem schlechten Benehmen ausgenommen bin. Ich habe grundsätzlich das gleiche geantwortet wie die anderen: Deine Quelltexte/Aussagen stimmten einfach nicht mit dem tatsächlichen Verhalten von Python überein. Und so wirklich verstanden was für ein Problem *eigentlich* gelöst werden sollte, habe ich auch noch nicht. Aber das Du beleidigend wirst und mutig mit körperlicher Gewalt drohst — was hinter einer Tastatur und einem Monitor und mit dem Internet dazwischen irgendwie hilflos niedlich wirkt — habe ich verstanden.

Du sagst wer Dir nicht helfen will soll nicht antworten — wie wäre es wenn Du einfach keine Fragen stellst, wenn Du keine Hilfe möchtest. ;-)

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:07
von zizou2981
@cofi: danke für den Link und du bist bestimmt kein Idiot, denn du hast nicht Gott gespielt :wink:

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:08
von snafu
Für mich wäre das Verhalten dieses Typs ja schon fast ein Kick-Grund. Stimmungsvergiftende Trolls gibt's ja öfter mal, aber im Regelfall bedrohen die keine User. Er schon.

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:14
von zizou2981
@BlackJack: wenn du dazu gehören willst, dann habe ich nichts dagegen :wink:
und keine Sorge, ich werde auch keine Fragen mehr hier stellen. 99,9999% von dem, was ich bis jetzt programmiert habe, habe ich in Bücher und experten Seiten gelesen und nicht in diesem Forum.

Re: Richtige Dictionary-Ordnung...

Verfasst: Dienstag 17. Juli 2012, 22:14
von /me
zizou2981 hat geschrieben:Also wer nicht helfen möchte, der kann seine Hilfe sparen, und danke an alle, die versucht haben zu helfen.
Versucht haben es alle. Du warst der einzige der versucht hat das ganze zu torpedieren.

Der von dir angegebene Code mit der Ausgabe funktioniert einfach nicht.

Code: Alles auswählen

>>> S = {"NEW":{"Element01 ":1, "Element02 ":2}, "NEW":{"Element01 ":3, "Element02 ":4}, "NEW":{"Element01 ":5, "Element02 ":6}}
>>> S[(S.keys())[1]]["Element01 "]
3
Versuchst du jetzt uns dafür verantwortlich zu machen, dass du offensichtlich falsche Angaben gemacht hast? Natürlich ist es einfacher die Schuld bei anderen zu suchen. Ein Fall von derartiger Realitätsverweigerung spricht allerdings Bände.