对于我正在处理的一个项目,我正在处理许多深度嵌套的 dict-and-list 数据结构。我经常发现自己在进行查找,希望返回一个包含单个成员的列表。查找可能完全失败,或者只是返回零结果,所以我可以编写如下代码:
try:
value_I_need = lookup_results[0]
except IndexError:
# handle lookup failure, keep going
但最近我一直想知道编写一个循环是否更具前瞻性,最初假设它只发生零次或一次:
value_I_need = None
for value_I_need in lookup_results:
break
if value_I_need is None:
# handle lookup failure, keep going
(我说“面向未来”是因为我可能想重写或概括此代码以处理具有多个结果的查找。)这两种方法中的任何一种是否存在固有的非pythonic、错误或速度慢?