Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 为什么当我放入else语句时,它会立即返回else语句中的值?_Python 3.x - Fatal编程技术网

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

Python 3.x 为什么当我放入else语句时,它会立即返回else语句中的值?,python-3.x,Python 3.x,这是我为字典列表创建的函数,如下所示: 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][

这是我为字典列表创建的函数,如下所示:

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语句时,它返回正确的结果。为什么会这样


感谢

原因是,只要在
db
变量中找到不包含键的字典,for循环中的
return
语句就会被触发,尽管以后在
db
中可能会出现dict。(调用函数时,
return
语句将立即结束函数的执行)

读取并使用。理解并利用自己的代码调试功能是一项非常值得学习的技能。