我确实有以下问题 -
dict1 = {'abc': {'x': 2, 'y': 3, 'z': 4}, 'mno': {'p': 3, 'q':4, 'r':5}}
def refine():
def calc(a_dict):
if some_condition :
return x ={'a':1}
else:
return None
for k, v in dict1:
return calc(v)
现在,当我在{for循环中iterating
调用此函数时,我得到None
或a
。函数调用是这样的,我最多可以获得一个a
。
示例输出 -
None
None
{'a':1}
None
我希望calc
函数返回None
,以防循环后的所有值都给出None
或x
,以防循环后的任何值给出x
1}}。如何实现这一目标?提前致谢。
修改 -
如果我将结果存储在列表中并想要检查列表是否包含None
以外的其他内容并且if True
将其返回,该怎么办?
答案 0 :(得分:2)
如果我确实收到了问题,您可以将条件的结果存储在字典中,然后使用all
量词函数进行检查:
def calc(a_dict):
results = (some_condition(k,v) for k,v in a_dict.iteritems())
if all(res == None for res in results):
return None
elif all(res == <something> for res in results):
return {'a':1}
else:
return <something different>
答案 1 :(得分:0)
if any(somecondition):
return x
else:
return None