Python 可变与不可变类型图表
是否有一个表或图表可以显示python中哪些类型(内置)是可变和不可变的?我不确定是否有图表,但基本上: 可变:Python 可变与不可变类型图表,python,types,immutability,mutable,Python,Types,Immutability,Mutable,是否有一个表或图表可以显示python中哪些类型(内置)是可变和不可变的?我不确定是否有图表,但基本上: 可变: 列表,字典,字节数组 注意:bytearray不是序列 不可变: tuple,str 您可以通过以下方式检查可变性: >>> import collections >>> l = range(10) >>> s = "Hello World" >>> isinstance(l, collections.Mutab
列表
,字典
,字节数组
注意:bytearray
不是序列
不可变:
tuple
,str
您可以通过以下方式检查可变性:
>>> import collections
>>> l = range(10)
>>> s = "Hello World"
>>> isinstance(l, collections.MutableSequence)
True
>>> isinstance(s, collections.MutableSequence)
False
对于字典(映射):
这检查它是否是一个可变序列,而不是它是否是一个可变对象。dict显然是可变对象,但是
isinstance({},collections.MutableSequence)
为false。是的,对于dict,使用了MutableMapping
。我没有提到,因为我以列表为例。我会更新它。这对集合不起作用。我的观点是,collections
不会以通用方式告诉您对象是可变的还是不可变的。好的。那么检查它的一般方法是什么?请随时更新答案。@Sukbir:Addbytearray
到可变图表(仅py3)。另外还有array.array
,它可能不是狭义上的“内置”,但通常是存在的。
>>> isinstance({}, collections.MutableMapping)
True