Python中set()的类型是什么?

2024-09-24 02:18:30 发布

您现在位置:Python中文网/ 问答频道 /正文

a = ['a', 'b', 'c', 'd']
b = set(a)
print isinstance(a, types.ListType)
print isinstance(b, types.ListType)

结果表明b不是类型.列表类型. 但是,Python中没有SetType。那么“XXXType”是什么类型的呢,类型.xxx类型)是真的吗?在


Tags: 类型列表xxxtypesisinstanceprintset结果表明
1条回答
网友
1楼 · 发布于 2024-09-24 02:18:30

使用isinstance(b, set)。在

对内置类型的types引用只是为了方便起见,*,否则将被弃用(它们已从Python 3.x version of the ^{} module中删除)。因此,从未添加{}。在

例如,types.ListType只是list的别名:

>>> import types
>>> types.ListType is list
True
>>> isinstance([1, 2, 3], list)
True

如果必须types模块中有SetType引用,只需自己添加别名:

^{pr2}$

如果您正在为基本容器类型寻找一个抽象基类,请使用^{} module ABCs;这些标志着方法的类型支持和针对这些类型的检查可以让您检测支持特定操作的更广泛的类型集(而不是仅是list和{}类型的实例):

>>> from collections import Set, MutableSequence
>>> isinstance([1, 2, 3], MutableSequence)
True
>>> isinstance({1, 2, 3}, Set)
True

*历史教训:很久以前,像intlist这样的内置类型并不是真正的类,而内置名称int()list()只是函数来转换成内置类型。这意味着名称与types.IntTypetypes.ListType不是同一个对象,而且您可以使用types模块来对列表对象使用isinstance()。这段时间已经很长了,远远落后于我们,types模块的角色已经改变。在

相关问题 更多 >