我想检查传递给函数的集合是否有序,也就是说,元素的顺序是固定的。(我说的不是"排序"。(
- 未订购
set
- 对CCD_ 2s和CCD_ 3s进行排序
我可以使用通用测试吗?
有序的非映射集合通常实现序列协议(其主要特征是通过__getitem__
方法提供索引访问(,并且可以针对collections.abc.Sequence
:进行类型测试
from collections.abc import Sequence
isinstance(set(), Sequence)
# False
isinstance(list(), Sequence)
# True
isinstance(tuple(), Sequence)
# True
如果坚持应该包括有序映射,即dict
(从Python 3.7开始排序(,则可以针对collections.abc.Reversible
:进行测试
isinstance(set(), Reversible)
# False
isinstance(list(), Reversible)
# True
isinstance(tuple(), Reversible)
# True
isinstance(dict(), Reversible)
# True