Python void / null函数

时间:2011-06-13 03:34:55

标签: python function void

Python noob所以我可能会以错误的方式解决这个问题

我想使用try / except块来查找dict中的值是否未设置为

try:
    if entry['VALUE1'] == None: void()
    if entry['VALUE2'] == None: void()
except KeyError:
    print "Values not Found"

当然'void'函数不存在,我可以做些什么来解决这个问题,以便代码能够正常工作

5 个答案:

答案 0 :(得分:8)

尝试将void()替换为pass

当然,在实践中,您可以if key in some_dict:。但如果您需要在一个区块中“无所事事”,pass就是您正在寻找的。

答案 1 :(得分:3)

尝试:

if "VALUE1" in entry:
    foo()

确定"VALUE1"字符串是否在entry字典的键集中。

你的逻辑可能看起来像:

if "VALUE1" not in entry or "VALUE2" not in entry:
    print "Values not found"

此测试完全没有try块。

答案 2 :(得分:0)

if entry.has_key('VALUE1'):
 do_something()

if 'VALUE1' in entry:
 do_something()

答案 3 :(得分:0)

我建议制作一个帮助你的功能:

contains_all_keys = lambda d, keys: reduce(lambda a, b: a and b, map(lambda k: k in d, keys))
di = {'a':'some val', 'b':'some other val'}
if contains_all_keys(di, ['a', 'b']):
    print 'a and b present'
if not contains_all_keys(di, ['a', 'b', 'c']):
    print 'missing keys'

答案 4 :(得分:0)

如果您只想通过密钥查找来唤起异常,则if不是必需的。只需在一行上表达查找就足够了,例如:

>>> a = {}
>>> a['value']
Traceback (most recent call last):
  File "<ipython console>", line 1, in <module>
KeyError: 'value'
>>>