检查是否存在Dict值

时间:2013-12-02 13:20:12

标签: python maya

我试着寻找答案,但没有发现任何有用的东西。所以我不得不问。

我有一个密码收集器,现在每次运行脚本时都会运行。然后将该值存储在内存中以将其用于该会话。

即使我关闭该脚本,只要maya仍处于打开状态,我就可以访问密码。

我需要的是一种查看值是否已存在于内存中的方法。 当我使用

print argdict['password']

我可以看到dict在我的记忆中。 我试着得到像

这样的东西
if argdict['password'] in locals():
    print 'its alive'

但是这不会返回任何内容,检查dict键或值是否存在的正确方法是什么。

5 个答案:

答案 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