Python>&燃气轮机&燃气轮机;类型错误:不可损坏的类型:';列表';

Python>&燃气轮机&燃气轮机;类型错误:不可损坏的类型:';列表';,python,python-2.7,Python,Python 2.7,我得到了下面的代码上面提到的错误,需要帮助来纠正它 代码: 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 so

我得到了下面的代码上面提到的错误,需要帮助来纠正它

代码:

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]

您试图使用列表作为键;
self.data
中的每个元素都是一个嵌套列表,其中包含一个整数

您有两个选择:

  • 将列表转换为元组:

    self.temp_dict[tuple(i)].append(i)
    
  • 如果列表仅包含一个元素,请使用该元素作为键:

    self.temp_dict[i[0]].append(i)
    

请包括您收到的异常的完整回溯,而不仅仅是消息。必须
数据
包含列表吗?这些嵌套列表是否总是只包含一个值?是的,
list
s不可散列。转换到
元组
.Traceback(最近一次调用最后一次):文件“filename.py”,行>>self.temp\u dict[i]=[i]类型错误:未损坏类型:'listPlease your post。。。。
self.temp_dict[i[0]].append(i)