无法散列的类型列表

时间:2018-07-30 17:37:19

标签: python python-3.x collections

我们设置了S个元组。

每个元组为(string, string, list)

下面的代码:

def f(entry_set, def_dict, S):
    for entry in entry_set:
        if entry[1] in def_dict:
            S.add((entry[0], entry[1], def_dict[entry[1]]),) // error

给出错误:TypeError: unhashable type: 'list'

def_dict的构造带有附加列表的值。


要添加条目,是否使用散列法来查找set元素的唯一性?

1 个答案:

答案 0 :(得分:0)

version: '3' services: my_project: image: some_registry/my_project ports: - "127.0.0.1:2015:2015" labels: - "traefik.frontend.rule=Host:subdomain.domain.me" 是可变的引用,因此不能散列,因为它引用了内存。如果您可以将列表转换为元组,则可以对其进行哈希处理。

list

相对于:

set((1, 2, [3, 4]))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-5-d0176c73c39f> in <module>()
----> 1 set((1, 2, [3, 4]))

TypeError: unhashable type: 'list'