为什么当我放入else语句时它会立即返回else语句中的值?

时间:2018-05-18 06:13:49

标签: python-3.x

enter image description here

这是我为字典列表创建的函数:

db = [{'a':1, 'b': 2, 'c': 3}, {'c':13, 'd':14, 'e':15}, {'e':25, 'f':26, 'g':27}]

当我执行这样的调用方法时:它会立即返回else语句中的内容

def call(db, key):
    new = []
    for i in range (len(db)):
        if key in db[i]:
            new.append((i, db[i][key]))
        else:
            return []
    return sorted(new)

当我取出else语句时,它返回正确的结果。为什么会这样?

感谢

1 个答案:

答案 0 :(得分:2)

原因是,只要在return变量中找到不包含密钥的字典,for循环中的db语句就会被触发 - 尽管后面的字典在{{ 1}}可能。 (db语句将在调用函数时立即结束函数的执行。