Python的数据类型总结

黄舟
Libérer: 2016-12-16 16:40:32
original
1436 Les gens l'ont consulté

原地可变类型和不可变类型

原地不可变类型又叫可哈希(hashable)类型,原地可变类型又叫不可哈希类型。

原地不可变类型:

数字类型:int, float, decimal.Decimal, fractions.Fraction, complex

字符串类型:str, bytes

tuple

frozenset

布尔类型:True, False

None

原地可变类型:

list

dict

set

如何实际检验是否原地可变

hash还是会返回原地不可变类型的hash值,如果对一个原地可变的类型调用次函数,那么会返回TypeError。
只有可以hash的类型才可以作为dict的键。
只有可以hash的类型才可以放入set中,所以set本身不可以嵌套存放在set中。
举例说明:

>>> hash(b'aaa')
6904179387427091653
>>> hash(bytearray(b'aaa'))
Traceback (most recent call last):
 File "", line 1, in
TypeError: unhashable type: 'bytearray'
>>> hash(frozenset({1,2,3}))
-7699079583225461316
>>> hash({1,2,3})
Traceback (most recent call last):
 File "", line 1, in
TypeError: unhashable type: 'set'

如何实际检验操作是否是原地变化。

内置函数id()会返回一个对象在内存中实际的存放地址。

>>> L=[1]
>>> id(L)
49689480
>>> L.append(2)
>>> id(L)
49689480    #在原地修改,所以可以看到存放地址没有发生改变。
>>> s='aa'
>>> id(s)
47072456
>>> s+='bb'
>>> id(s)
49700008    #由于不可以在原地修改,所以当字符串变动后,新开辟了一个内存地址进行存放。
>>>

数据保存是否有序

有序的数据类型

有序的数据类型称为序列,支持索引、分片、加法、乘法、计算长度、比较大小操作。
比较时会依次比较每个元素的大小,如果依次比较时发现类型不相同会跳出错误。

list

tuple

str

bytes

无序的数据类型

dict

set

 以上就是Python的数据类型总结的内容,更多相关文章请关注PHP中文网(www.php.cn)! 


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal