2012-04-08 17 views
2

Ist es möglich, diese Codezeile gültig zu machen?Mehrere Zuweisungen aus einem Python-Wörterbuch

description, content, state, city, datetime = makeTupleRightOrder(dictionary) 

diese makeTupleRightOrder würde die ‚Parameter‘ von der linken Seite der Zuweisung bekommen, ihre Namen in Zeichenfolgen konvertieren und eine Liste bekommen ihre Werte aus dem Wörterbuch bauen.

+0

schreibe es als 'map (lambda x: dictionary [x], [beschreibung, inhalt, status, stadt, datetime])' – Abhijit

+0

'einwohner() .update (wörterbuch)' bewerkstelligt dein endziel, ein wörterbuch zu konvertieren Variablennamen. –

+1

@StevenRumbalski Der Inhalt von 'localhosts()' sollte nicht geändert werden. –

Antwort

3

Nein. Die Funktion hat keine Ahnung, was sich auf der linken Seite der Zuweisung befindet, und selbst wenn dies der Fall wäre, hätten die Variablen möglicherweise andere Namen als die Schlüssel.

2

Kindall ist richtig. Für den allgemeinen Fall können Sie dies nicht tun. Was Sie können tun ist, sortieren die alphabetisch Schlüssel und immer sicherstellen, dass die Variablen, die Sie die dict sind Auspacken in der richtigen (alphabetische Reihenfolge) sind in Bezug auf die Tasten:

city, content, datetime, description, state = [dictionary[k] for k in sorted(dictionary)] 

(Diese Beispiel nimmt an, dass die Wörterbuchschlüssel identisch mit den Variablen sind, die Sie entpacken.

HINWEIS

Wenn Sie in Situationen einsetzen, wo Sie, dies zu tun gezwungen sind, würde ich prüfen, anders Ihren Code zu entwerfen. Ihre Implementierung ist wahrscheinlich fehlerhaft.

+0

Schönes Querdenken! – kindall

+0

Ich dachte nur, das könnte cool sein x) –

+0

Das geht definitiv zu weit, aber wenn Sie die Variablen auf der linken Seite in intelligente Objekte machen, die voneinander wissen, können Sie Daten austauschen, bis sie das Recht hatten Werte. Es wäre cool, aber völlig sinnlos. –

Verwandte Themen