我试着寻找答案,但没有发现任何有用的东西。所以我不得不问。
我有一个密码收集器,现在每次运行脚本时都会运行。然后将该值存储在内存中以将其用于该会话。
即使我关闭该脚本,只要maya仍处于打开状态,我就可以访问密码。
我需要的是一种查看值是否已存在于内存中的方法。 当我使用
print argdict['password']
我可以看到dict在我的记忆中。 我试着得到像
这样的东西if argdict['password'] in locals():
print 'its alive'
但是这不会返回任何内容,检查dict键或值是否存在的正确方法是什么。
答案 0 :(得分:4)
使用此:
if 'password' in argdict:
答案 1 :(得分:2)
测试“password”是否属于词典的值。
"password" in d.itervalues()
测试“密码”是否在词典的键中。
"password" in d.keys()
答案 2 :(得分:0)
您可以使用in
执行此操作:
if 'password' in argdict:
答案 3 :(得分:0)
我认为可能更优雅的是:
if argsdict.get('password', False):
# do whatever
它会尝试查看argsdict
是否有'密码'键/值对,但如果没有,它将采用默认值,我提供为False.
因此,条件成为if False
当没有'password'键时,条件块将不会运行。
但是,如果您将某个对象视为“密码”的值为False
,则也不会执行此操作。评估为False
的各种值(尝试bool(some_object)
以查看它是评估为True还是False):0, None, '', {}, []
等。大多数空容器都是False
。
因此,这可能是你最好的选择:
if 'password' in argsdict:
答案 4 :(得分:0)
检查dict是否存在的正确方法是简单地使用名称:
>>> d = dict()
>>> 'd' in locals()
True
看看它是否是一个字典:
>>> isinstance(d, dict)
True
要检查密钥:
>>> d['password'] = 'foo'
>>> 'password' in d
True
要检查值是否存在(并且非空):
>>> if d.get('password'): print True
...
True
检查值是否为特定值:
>>> d.get('password') == 'foo'
True