首页 > 代码库 > python数据类型之列表,元组,字典

python数据类型之列表,元组,字典

pop  按照 索引 删

remove  按照 元素 删

列表 可变

元组 不可变,切片是一种读操作。与 元组 相关的操作比 列表 少很多。 

元组下的列表内的东西是可以改变的,元组下的列表作为一个整体是不可改变的。

元组  列表在应用中的区别?

 

 

身份比较,类型比较,值比较
x=1
y=1
x is y #x与y是同一个对象,is比较的是id,即身份
type(x) is type(y) #对象的类型本身也是一个对象,所以可以用is比较两个对象的类型的身份
x == y #==比较的是两个对象的值是否相等

 

列表   list

特性:
1.可存放多个值
2.可修改指定索引位置对应的值,可变
3.按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序。

a.pop()

技术分享 技术分享

默认移除最后一个。 pop本身就是出栈的意思。

 

元组   tuple

定义:与列表类似,只不过[]改成()
特性:

1.可存放多个值
2.不可变        key不可变,value值可变。        迭代器
3.按照从左到右的顺序定义元组元素,下标从0开始顺序访问,有序

元组的常用操作,索引,切片,循环,长度,包含。  均是读操作,并不涉及到更改。

 

字典

定义:{key1:value1,key2:value2},key-value结构,key必须可hash
特性:

1.可存放多个值
2.可修改指定key对应的值,可变
3.无序

 

字典的存储结构是哈希表, 这样字典的查找性能就会很好(前提是处理好碰撞), 所以字典的key必须是可哈希的

 

什么是可哈希的(hashable)不该改变的(imutable)?

如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以可哈希的对象可以通过哈希值进行对比,也可以作为字典的键值和作为set函数的参数。所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)。我们用户所定义的类的实例对象默认是可哈希的(hashable),它们都是唯一的,而hash值也就是它们的id()。

 
技术分享

 

 

 

python数据类型之列表,元组,字典