我收到以下代码的上述错误,需要帮助才能纠正它。
代码:
def in_range_func(self, curtemp, keys):
if keys == []:
return (curtemp, False)
for k in keys:
if (k-2) <= curtemp <= (k+2):
return (k, True)
return (curtemp, False)
def sort_func(self):
for i in self.data:
if i in self.temp_dict.keys():
self.temp_dict[i].append(i)
else:
(x, success) = self.in_range_func(i, self.temp_dict.keys())
if success:
self.temp_dict[i].append(i)
else:
self.temp_dict[i] = [i]
for x in self.temp_dict.keys():
print x, self.temp_dict[x]
在上面的代码中
data = [[1], [4], [34], [45.5], [70.7], [70.9]]
temp_dict = {}
答案 0 :(得分:0)
您正在尝试使用列表作为键; self.data
中的每个元素都是一个嵌套列表,其中包含一个整数。
您有两种选择:
将列表转换为元组:
self.temp_dict[tuple(i)].append(i)
如果列表只包含一个元素,请使用该元素作为键:
self.temp_dict[i[0]].append(i)