【发布时间】:2019-01-07 00:41:55
【问题描述】:
我们已经设置了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 是使用附加列表的值构造的。
对于添加条目,是否使用散列来查找集合元素的唯一性?
【问题讨论】:
-
你能包括一些输入和预期输出吗?
-
集合实际上是没有值的字典,而字典实际上是哈希表,除非您可以对它们进行哈希处理,否则您不能将事物放入哈希表中。
-
使用元组而不是列表。
-
@MisterMiyagi 我不能,因为我需要这个代码:
def_dict[key].append(list_elem)。查询已编辑 -
你是这样构建还是使用这个序列的?在前一种情况下,插入时将
list转换为tuple。在后一种情况下,恐怕没有任何意义 -set是通过相等定义的,它会被更改元素破坏。
标签: python python-3.x collections