gpt4 book ai didi

python - 字典键错误python

转载 作者:太空宇宙 更新时间:2023-11-03 14:33:55 25 4
gpt4 key购买 nike

我收到错误“Key Error: 'tempMax'”。

谁能告诉我下面的代码有什么问题:

def catagorise(self, day, cat, f):
self.features.setdefault(cat, {f:{'high':0,'mid':0,'low':0}})

if f == 'tempMean':
if day.tempMean > 15.0:
self.features[cat][f]['high'] += 1
elif day.tempMean > 8.0 and day.tempMean < 15.0:
self.features[cat][f]['mid'] += 1
elif day.tempMean <= 8.0:
self.features[cat][f]['low'] += 1

if f == 'tempMax':
if day.tempMax > 15.0:
self.features[cat][f]['high'] += 1
elif day.tempMax > 8.0 and day.tempMax < 15.0:
self.features[cat][f]['mid'] += 1
elif day.tempMax <= 8.0:
self.features[cat][f]['low'] += 1

一天是一个对象,它具有平均温度、最高温度等变量。Cat 是它将被放入的类别,例如“雾”、“雨”、“雪”、“无”,f 是检查功能,例如'最大温度'

特征字典是在创建类时定义的。

最佳答案

问题出在 setdefault 调用中。f 设置为 tempMax 但 tempMax 从未初始化。在这种情况下,需要将其初始化为字典,因为您将“high”作为键

self.features[cat][f]['high']


self.features[cat]['tempMax'] = {}

如果您有 PHP 背景,那么这是一个常见的错误。在 python 中,你必须初始化你的字典。它们必须在每个嵌套级别进行初始化。常见的方法是...

try:
self.features[cat]
except KeyError, e:
self.features[cat] = {}

try
self.features[cat]['tempHigh']
except KeyError, e:
self.features[cat]['tempHigh'] = {}

关于python - 字典键错误python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5408726/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com