1.整数、字符串
整数、字符串是简单的数据类型,它的内存结构图为:
Python中一切皆对象,变量的内存结构图也同上图,有id、type、value。
当把整数、字符串赋值给变量时,变量储存的是整数、字符串的id,存在自己的value字段中,如下图:
2.列表
列表可以储存多个不同的数据类型的对象,如下图:
列表储存整数对象时,将对象id存到自己的value字段,并且生成3个连续id。当把列表赋值给变量时,变量将列表id,也就是连续id的第一个,存在自己的value字段中
3.字典
字典本质和列表结构相似,都可以储存多个不同的数据类型的对象,如下图:
其中对象1,对象1'分别为字典的键、值。键可以是字符串、整数、元组这些不可变类型,值可以是任何数据类型。
需要注意:
1.列表是有序的,字典是无序的。字典中对象不是按照放入顺序从上到下排的,而用hash()函数计算键的散列值,然后计算偏移量,从而根据偏移量得出键在列表中的行数位置,值则与键一同写入该行的两个bucket
2.字典查询很快,因为查询原理类似真的字典
3.字典很占内存空间,因为有空的行