使用for向python中的词汇表添加key:value项
嗨,我有这个功能:使用for向python中的词汇表添加key:value项,python,dictionary,for-loop,Python,Dictionary,For Loop,嗨,我有这个功能: def company_runtime(company_name): for well in all_wells: well_runtime = {} if well["groupName"].lower() == company_name.lower(): well_runtime.update({well["name"]: well["efficiency"]})
def company_runtime(company_name):
for well in all_wells:
well_runtime = {}
if well["groupName"].lower() == company_name.lower():
well_runtime.update({well["name"]: well["efficiency"]})
return well_runtime
如果我输入一个公司名称作为参数,我想从循环中得到一个包含“名称”和“效率”的字典
我只得到满足该条件的所有油井列表的最后一个元素
我做错了什么
提前感谢每次通过循环时,您都会将字典重置为
{}
或空,因此它会将其清除,直到最后一次退出。将well\u runtime={}
移出循环。每次通过循环时,都会将字典重置为{}
或为空,因此它会将其清除,直到最后一次退出。将well\u runtime={}
移动到循环之外。答案解决了您的问题,但您也应该使用well\u runtime[well[“name”]]=well[“efficiency”]
而不是使用well\u runtime.update(…)
而且返回的位置不在应该的位置,返回应该在for之外,因为这将导致它只返回第一个并退出函数谢谢!将变量移到循环外并移动返回值确实解决了问题,但您也应该只使用well\u运行时[well[“name”]]=well[“efficiency”]
而不是使用well\u运行时。更新(…)
而且返回值不是应该的位置,返回值应该在for之外,因为这将导致它只返回第一个并退出函数谢谢!将变量移出循环并移动返回值就可以了