这是我为字典列表创建的函数:
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语句时,它返回正确的结果。为什么会这样?
感谢
答案 0 :(得分:2)
原因是,只要在return
变量中找到不包含密钥的字典,for循环中的db
语句就会被触发 - 尽管后面的字典在{{ 1}}可能。 (db
语句将在调用函数时立即结束函数的执行。