2012-04-08 15 views
2

このコード行を有効にすることはできますか?Python辞書からの複数の割り当て

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

このmakeTupleRightOrderは、代入の左側から「パラメータ」を取得する文字列に自分の名前を変換した辞書から値を取得してリストを作成します。

+0

'map(lambda x:dictionary [x]、[description、content、state、city、datetime])' – Abhijit

+0

'locals()。update(dictionary)'は辞書を次のように変換します。変数名。 –

+1

@StevenRumbalski 'locals()'の内容は変更しないでください。 –

答えて

3

いいえ機能は割り当ての左側に何もわからず、そうしたとしても変数はキーと異なる名前を持つ可能性があります。

2

親切です。一般的なケースでは、これを行うことはできません。 (これを

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

:何行うことができますは、常にキーの面であなたが辞書を開梱された変数が正しい(アルファベット順)であることがあることを確認してアルファベット順にソートキーで、例では、辞書のキーの名前は、アンパックする変数と同じ名前です)。

NOTE

あなたはこれを行うことを余儀なくされる状況に実行している場合は、私は違ったあなたのコードを設計検討します。あなたの実装にはおそらく欠陥があります。

+0

いい横方向思考! – kindall

+0

私はちょうどこれがクールだと思っていたx) –

+0

これは間違いなく遠すぎますが、左側の変数をお互いに「知っている」スマートオブジェクトにすると、権利が得られるまでデータを交換することができます値。それはクールだが、全く無意味だ。 –

関連する問題