python - 为什么 {1} == freezeset({1}) 在 Python 中?
问题描述
我觉得奇怪的是,在 Python 中,{1} == frozenset({1})
计算结果为True
. set
并且frozenset
是不同的对象类型,我没有看到其他可迭代对象类型之间的这种相似性(例如,{1} == (1,)
评估为False
)。为什么集合会出现这种行为?是否还有其他具有类似行为的可迭代对象类型?
解决方案
的实例与基于其成员
set
的实例进行比较。frozenset
例如,“set('abc') == frozenset('abc')
”返回True
.
并在 python3 文档中:
set 和 freezeset 都支持 set 设置比较。两个集合相等当且仅当每个集合的每个元素都包含在另一个集合中(每个元素都是另一个集合的子集)。一个集合小于另一个集合当且仅当第一个集合是第二个集合的真子集(是一个子集,但不相等)。一个集合大于另一个集合当且仅当第一个集合是第二个集合的真超集(是一个超集,但不相等)。
推荐阅读
- angular - Angular 6 重新加载页面显示 404
- android - React 可以控制其他应用的原生应用
- jquery - OpenLayers 将动态复选框创建绑定到 GeoServer LayerGroup
- amazon-web-services - 需要了解如何设置 map reduce 类型函数以使用 AWS 资源从 CSV 文件导入 50K 联系人
- json - 我的代码是否阻止非重复项被输入到表中?
- android - 清单合并失败依赖 com.google.firebase:firebase-analytics:17.2.2
- apache - Apache Web 服务器不能在 https 端口上工作 在 http 上工作
- mysql - UPDATE 语句可以用作 INSERT 语句吗?
- javascript - 如何为 electron + react js + next 进行生产构建
- python - 向服务器发送数据时 HTTP 415 不支持的媒体类型客户端