Python>>> TypeError:不可用类型:'list'

时间:2015-07-13 15:56:02

标签: 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 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 = {} 

1 个答案:

答案 0 :(得分:0)

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

您有两种选择:

  • 将列表转换为元组:

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

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