如何在Python中向集合(set)添加子集?解决添加集合报错问题
Python中向集合添加子集的正确方法
Python的集合要求内部元素必须是**可哈希(hashable)**的类型,普通集合(set)是可变的,不可哈希,所以直接用add()添加普通集合会触发TypeError: unhashable type: 'set'错误。以下是两种正确的解决方式:
使用不可变集合(
frozenset):frozenset是不可变的可哈希类型,适合作为集合的元素a = {1, 2, 3, 4, 5} a.add(frozenset({10, 11, 12})) print(a) # 输出: {1, 2, 3, 4, 5, frozenset({10, 11, 12})}转为元组添加:元组是不可变可哈希类型,和你之前尝试的方式一致
a = {1, 2, 3, 4, 5} a.add((10, 11, 12)) print(a) # 输出: {1, 2, 3, 4, 5, (10, 11, 12)}
另外,如果你的需求是把子集的元素合并到原集合中(而不是把子集作为单个元素添加),应该用update()方法:
a = {1, 2, 3, 4, 5} a.update({10, 11, 12}) print(a) # 输出: {1, 2, 3, 4, 5, 10, 11, 12}
内容的提问来源于stack exchange,提问作者lasha tlasha
相关产品推荐
相关产品推荐

