如何在字典构成的列表中获取name为length对应的value且避免遍历
解决方法
如果你需要多次查询不同name对应的value,最优方案是先把列表一次性转为name到value的映射字典,后续所有查询都不需要再遍历列表:
# 仅首次转换时遍历一次列表 name_value_map = {item['name']: item['value'] for item in list_} # 后续查询直接走字典映射,无遍历 if 'length' in name_value_map: length_value = name_value_map['length'] print(length_value) # 输出结果为 500
如果你仅需要查询这一次,可以用生成器表达式配合next()方法,找到匹配项就立即停止遍历,不会遍历整个列表:
# 第二个参数为匹配失败时的默认返回值,这里设为None方便判断是否存在 length_value = next((item['value'] for item in list_ if item['name'] == 'length'), None) if length_value is not None: print(length_value) # 输出结果为 500
内容的提问来源于stack exchange,提问作者Bruce Banner
相关产品推荐
相关产品推荐

