Python 对称对数据类型

标签 python

python 中是否有一种数据类型接受一对 (a,b) 并对称地对待它?也就是说,(a,b) 被视为与 (b,a) 相同的事物。最好不需要通过检查 a 和 b 的位置是否互换来手动检查两对是否相等的代码。

最佳答案

您正在寻找 set() type :

>>> pair = {'a', 'b'}
>>> pair == {'b', 'a'}
True

set 没有顺序。如果您需要将它们用作字典中的键,请使用不可变的 frozenset() type反而。 frozenset 用于settuple 用于list

只有一个限制:就像字典键一样,为了能够将值放入 set 中,它们需要是可哈希的,这通常归结为没有可变类型。

此外,集合中的值必须都是唯一的; {'a', 'a'} 简化为 {'a'},一组只有一个值。您可以使用 collection.Counter() objects如果您的对需要支持重复值。

关于Python 对称对数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21686376/

相关文章:

python - 往返 IPython transform_cell

python - 使用 string.whitespace 在 Python 中删除空格

python - 如果相同则删除多维列表中的元组

python - 导入时应如何将选项传递给 Python 模块?

python - 将包含单个数字的列表转换为整数

python - 如何避免 Python 模块系统中的命名冲突?

python - Pandas 中的复杂时间操作

python - 使用 beutifulsoup 和 Mechanize 从 html 表中获取文本时出错

python - 警告 : The lock file is not up to date with the latest changes in pyproject. toml

python - Django, sleep() 暂停所有进程,但前提是没有 GET 参数?