2013-02-14 98 views
7

我有一個命名空間看起來像這樣:迭代通過一個命名空間

命名空間(ATQ =無,BE =無,BEQ =無,B =無,BQ =無,C =無, Ç =無,cJ =無,d =無,g =無,jR = ['xx','015'],lC =無,l =無)

我怎樣才能遍歷它,找到並替換「jR」鍵的'xx'值?

+2

什麼是'Namespace'? – martineau 2013-02-14 00:52:20

回答

8

我不知道你事先知道,(名字jR,或只有一個名字有一個not None值),但你可以嘗試使用瓦爾(),其中,像__dict__應該是有名字的字典在你的命名空間中作爲它的關鍵。所以,如果你有串'jR'某處,

vars()['jR'] = vars()['jR'][0] 

同樣,你可以使用namespace.__dict__代替vars()

會讓你在['xx','015']作爲jR唯一值的第一個值,得到相同的字典。

編輯:要清楚,因爲vars()__dict__都返回類型的字典,你可以遍歷它們爲:

for k in namespace.__dict__: 
    if namespace.__dict__[k] is not None: 
     <<do something>>