2013-02-14 100 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>>