无法在Python中使用set.add()将集合添加到另一个集合

2024-10-16 11:25:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个字典,将名称(字符串)映射到一个集合,并将其定义如下:

dict = {"a" : {"one", "two", "three"},
        "b" : {"one", "two", "three"},
        "c" : {"one", "two", "three", "four"}}

然后我使用了一个键列表,如["b", "c"]来搜索dict的键,我想使用set.add()连接这些集,如下所示:

output = set()
keys_to_search_for = ["b", "c"]
for i in keys_to_search_for:
    if i in dict.keys():
       output.add(dict[key])

这产生了错误unhashable type: 'set',但是我检查了outputdict[key]的类型,它们都是集合。我以为set.add()可以连接两个集合


Tags: tokeyin名称addforoutputsearch
2条回答

您需要将字典本身是一个集合的值作为元素添加到输出集合中。您需要执行联合或更新:

output = output.union(dict[key])

output.update(dict[key])

注意:不要将单词dict用作变量

要将一个集合添加到另一个集合,应使用Set.update

a = {1, 2}
b = {2, 3}
a.update(b)

print(a)
{1, 2, 3}

相关问题 更多 >