Python类vlookup的finder函数如何补充未匹配返回Not Found逻辑
修改说明
你需要新增未命中匹配的判断逻辑,具体改动如下:
- 遍历前新增匹配状态标记变量,默认值为未找到
- 匹配成功时更新状态标记,同时可加
break终止后续无效遍历 - 遍历结束后判断状态,未匹配则输出
"Not found"
新增代码片段
- 遍历前新增:
found = False - 匹配成功的逻辑块内新增:
found = True break # 找到匹配后直接结束遍历,优化执行效率 - 遍历结束后新增:
if not found: print("Not found")
修改后的完整代码
def finder(lookupvalue, lookuplist, col_index): user_list = [ ["Account number","Currency","Balance"], ["001-987654-003","USD",1300.72], ["001-919202-100","EUR",105.01], ["001-905700-100","EUR",305.00], ["001-908415-307","CHF",20804.98], ["011-974777-200","PLN",208.15], ["001-931654-001","USD",450.7] ] errormsg = 'Out of range' if col_index > 3: raise ValueError(errormsg) found = False for row in user_list: if row[0] == lookupvalue: print(row[col_index-1]) found = True break if not found: print("Not found")
额外优化建议
当前函数参数lookuplist没有被实际使用,内部硬编码了user_list。如果需要支持传入自定义查找列表,可以删除函数内部的user_list定义,遍历逻辑直接使用传入的lookuplist参数即可。
内容的提问来源于stack exchange,提问作者pucktack
相关产品推荐
相关产品推荐

