问题 通过命名空间迭代


我有一个看起来像这样的命名空间:

命名空间(aTQ =无,bE =无,bEQ =无,b =无,bQ =无,c =无,   c =无,cJ =无,d =无,g =无,jR = ['xx','015'],lC =无,l =无)

如何迭代它以便我可以找到并替换“jR”键的'xx'值?


5940
2018-02-14 00:43


起源

什么是 Namespace? - martineau


答案:


我不确定你事先知道什么,(名字 jR,或只有一个名称有一个 not None 但是你可以尝试使用vars() __dict__ 应该是一个将命名空间中的名称作为键的字典。所以,如果你有字符串 'jR' 某处,

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

同样,你可以使用相同的词典 namespace.__dict__ 代替 vars() 

将为您留下第一个值 ['xx','015'] 作为唯一的价值 jR

编辑:要明确,因为 vars() 和 __dict__ 两者都返回dicts,你可以迭代它们:

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

12
2018-02-14 01:09