python - 将集合添加到现有集合
问题描述
我的目标是从 a_list 中的所有集合中获取交集。我的错误是,如何将值添加到 a_set。
a_set = set()
for i in range(len(a_list)-1):
a_set.add(a_list[i] & a_list[i+1])
其中: a_list 是用数字填充的集合列表。 a_list = [{224, 225, 3, 42, 108, 45, 78, 173, 115, 23, 221, 222, 191}, {2, 67, 6, 171, 109, 79, 222}, {160, 2, 222, 184}, {225, 2, 4, 76, 45, 16, 222, 223}]
错误:a_set.add(a_list[i] & a_list[i+1]) TypeError: unhashable type: 'set'
解决方案
您的问题是您尝试将集合添加到集合中。
这是无法做到的 -unhashable type: 'set'
下面的代码可以满足您的需求 - 它将交集组成员添加到最终集。
a_list = [{224, 225, 3, 42, 108, 45, 78, 173, 115, 23, 221, 222, 191}, {2, 67, 6, 171, 109, 79, 222}, {160, 2, 222, 184}, {225, 2, 4, 76, 45, 16, 222, 223}]
u = set.intersection(*a_list)
print(u)
输出
{222}
推荐阅读
- javascript - React 保持不超过一个数组元素的状态
- sql - 视图返回空白(使用子查询过滤余额列)
- jdbc - 带有 ResultSet 的 Lambda 表达式
- javascript - 如何在 background.js 中监听 Chrome 窗口的控制台日志消息?
- java - IntelliJ 和 gradle 3.0
- node.js - Pool.query 不是一个函数
- java - IntelliJ 代码检查抑制反序列化 POJO
- angular - 带有 http 的 Angular 自定义验证器不起作用
- python - 如何按降序返回我在 python 中编写的以下快速排序代码的值?
- javascript - 无法在节点 js 中获取 POST 数据