3

入力から dict を返す関数を作成できますか? お気に入り:

>>> a = 1
>>> b = 2
>>> d = vars_to_dict(a,b) # or d = vars_to_dict((a,b))
>>> print d
{'a': 1, 'b': 2}

実際には関数である必要はありません-関数にオブジェクト名が付けられているとは思いません。変数から辞書を作成するための省略形があるかどうか、私はたださまよっていました。現在、私はこれをたくさんやっています:

dict(data=data,index=index)

このようにして、辞書を作成するときにキー名を選択できますが、それらは変数の名前であるため、実際に選択する必要はありません。

PS:この質問を見たことがありますが、まったく同じではありません(変数名ではなく変数から始めています)

Python で変数名のリストが与えられた場合、変数名をキーとして (変数の値への) 辞書を作成するにはどうすればよいですか?

編集: これは、var-dict を「必要とする」ブロックの 1 つです。

data = []
index = []
for sent in sentences:
    sent_data = []
    sent_index = []
    for word in sent:
        sent_data.append(word[0])
        sent_index.append((word[1],word[2]))
    data.append(sent_data)
    index.append(sent_index)

EDIT2:少し明確にするために:変数の名前を辞書または文字列に取得する方法があるかどうか知りたいです。また、手動で入力することではありません。

4

4 に答える 4

1

それは悪いプログラミング方法です。辞書の先頭から開始します。

于 2013-10-30T12:25:51.960 に答える
1

を呼び出すとglobals()、すべてのグローバル変数の辞書が返されます。

>>>a = 1
>>>b = 'foo'
>>>globals()
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'a': 1, 'b': 'foo' '__package__': None}
>>>globals()['a']
1
>>>globals()['b']
'foo'

唯一のことは、不要な変数を除外する必要があるということです。

于 2013-10-30T11:01:18.090 に答える