繁体   English   中英

循环python中的函数调用

[英]Function call inside a loop python

我确实有以下问题-

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此函数调用时,得到Nonea 函数调用使我最多可以得到一个a

样本输出 -

None
None
{'a':1}
None

我想calc函数返回None循环后,所有的值的情况下,给出了Nonex的情况下,任何一个值后循环使x 。如何才能实现这一目标? 提前致谢。

编辑 -如果我将结果存储在列表中并且要检查列表中是否包含除None以外的其他内容,以及if True返回它,该怎么办?

如果确实收到问题,则可以存储应用于字典的条件结果,然后使用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>

您可以使用any()。 任何条件是否为真的任何检查。 它返回x。 如果所有值都失败,则转到其他值

if any(somecondition):
    return x
else:
    return None

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM