2010-12-05 13 views
0

可能性の重複:
Creating or assigning variables from a dictionary in Python方法:辞書をPythonの文字列に変換しますか?

こんにちは

私たちは、このような辞書があります。

data = {'raw':'lores ipsum', 'code': 500} 

どのようにこの辞書は文字列に変換するために?結果は次のようにする必要があります。

print raw 
print code 
#output is 
# lores ipsum 
# 500 

EDIT: OKなので、私がしたいことは可能な生とコードの変数を持つことです。..もう一つの例

data = {'raw':'lores ipsum', 'code': 500} 
var1 = code 
var2 = raw 

トンを作ることが困難になるです文字列操作の変数は、メソッドではdictです。これはクラスメソッドにあります... これは次のようになります:self.data ['raw'] [0]、これは毎回 "raw"変数はより快適です...(これをすべての行に使用して結合操作とフォーマット操作を想像してください!!!)とにかくこれは、この方法だけで利用できるようになりますvarsは、このソリューションには、副作用... EDIT

ありません:削除されたが、誰も私が欲しいものを理解していないが

答えて

6

これは非常に悪い考えです。意図したとおりにdictsを使用すると、はるかに簡単な解決策が得られます。次のように

非dictの文字列変数にキー=値のペアを作るの簡単なハック汚い方法は次のとおりです。

​​

これは脆弱であり、複雑なデータ型の休憩、脇に無分別であることから、しかし、それはあなたが尋ねたことをします。

2

非常にあなたが正確に何をしたい私には不明で、あなただけのいくつかの辞書のキーの値をプリントアウトする場合:

>>> print data['raw'] # etc 
lores ipsum 

を行います仕事。

あなたはすべてのキーをプリントアウトしたい場合は、それらの上の単純な反復:

for k, v in data.iteritems(): 
    print v 

# ouput 
# lores ipsum 
# 500 

しかし、手段、出力の順序は、必ずしも順序ではないことを、辞書は順不同であることに留意してくださいあなたはそのアイテムを宣言しました。

+0

編集した質問、あなたの投稿を編集してください。) – holms

+0

少なくともない魔法の深刻な量が関与せずに、何もなんとかませんが、それでも、それはこのように辞書のうちのものを引っ張って、望ましくないことを無効にすることができますローカル変数などが含まれます。 –

+0

これを手動で行う方が良いですか? code = self.data ['raw'] ['code']?あなたはこれがちょうど私を殺していることを知っている... phpで1つの関数で配列を変数に変換することが可能です...そして、あなたはすべてのインデックスをvar名として持っています...それは本当に快適です.. pythonでは自殺です.. – holms

1

Pythonのローカル変数とグローバル変数は、同様にdictsに保持されます。 locals()関数またはglobals()関数を使ってこれらのdictsの1つを取って更新するだけです。

外部ソースからこのデータを取得すると安全ではないことに注意してください。環境内の名前(ビルドされた関数の名前も含む)はこの方法で上書きできます。

>>> data = {'raw':'lores ipsum', 'code': 500} 
>>> locals().update(data) 
>>> print raw 
lores ipsum 
>>> print code 
500 
>>> 
関連する問題