1. 元组简介
元组基本介绍
- 元组表现形式tuple
- 元组是一个不可变序列
- 什么时候用列表?什么时候用元组?
一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表 - 使用()创建元素
- 元组不是空元组至少有一个逗号(,)当元组不是空元组时,括号可以省略
- 元组解包就是指,将元组当中的每一个元素都赋值给一个变量
总结:在元组解包时,变量的数值必须和元组中的元素要一一对应 如果出现变量和元素没有对等的情况下,我们可以在变量前面加个 * ,这样变量就会将获取元组中所有剩余的元素以列表形式返回
2. 可变对象
可变对象,只的是我们可以对对象里面的value进行改变
Python中,数值类型(int和float)、字符串(str)、元组(tuple)都是不可变类型。列表(list)、字典(dict)、集合(set)是可变类型
可变对象中都保存了三个数据
- id(标识)
- type(类型)
- value(值)
3. 字典简介
3.1 字典的基本介绍
-
字典属于一种新的数据结构称为映射(mapping)
-
字典的作用和列表类似,都是用来存储对象的容器
-
列表存储数据的性能好,但是查询数据的性能差,字典正好阈值相反
-
在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素
-
这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为 值
-
字典我们也称之为键值对(key-value)结构
-
每个字典中都可以有多个键值对,而每一个键值对我们称之为一项(item)
-
创建一个数据的字典 语法{key:value}
-
字典的值可以是任意对象 字典的键(key)可以是任意的不可变对象(int str bool tuple…)
-
字典的键(key)是不能重复的,如果出现重复的后面的会替换前面的
3.2 字典的使用
- 可以通过dict()函数来创建字典
- 双值子序列
- 双值序列 序列中只有两个值,(“x",1),“ab”,[5,6]
- 子序列 如果序列中元素也是序列 那么我们就称这个元素为子序列 [ (4,5),(6,7)]
- len() 函数可以获取字典中键值对的个数
- in 和 not in
- in 检查字典中是否包含指定的键
- not in 检查字典中 是否不包含指定的键
-
获取字典中的值 根据键(key)来获取
- 语法: d.[ “name”]
- 语法: d.[ “name”]
-
get(key[,default])该方法可以根据字典中的key来获取值 , 如果获取字典中的键不存在 就会返回 None , 也可以指定一个默认值来作为第二个参数 这样获取不到值的时候返回默认值
-
修改字典
- dict[ key ] = value
- d.setdefault(“key”,“value”) 在字典中添加key-value
- 如果key已经存在到字典当中,则返回key的值 不会对字典做任何操作
- 如果key不存在,则向字典中添加这个key 并设置value
- dict[ key ] = value
-
update( ) 将其他字典中的key-value添加到当前的字典当中
- 如果有重复的key 则后面的会替换到当前的
-
del d[“a”] 删除字典中的key-value
-
popitem( ) 一般都会删除最后一个
- 删除之后他将key-value作为返回值返回
- 返回的是一个元组 元组中有2个元素 第一个元素是key 第二个元素是value
-
pop(key[,default]) 根据key删除字典中的key-value 。 第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值
3.3 copy()浅复制
copy()方法用来对字典进行浅复制
注意:浅复制只会复制字典本身,如果字典中还有个字典是不会进行复制的
复制后的对象和原对象是独立的,修改一个不会影响另一个
浅复制会简单复制对象内部对象的值,如果值也是个可变对象,这个可变对象不会被复制
4. 遍历字典
我们主要可以通过3中方式对字典进行遍历
- keys() 该方法返回的是字典所有的key
- values() 返回一个序列,该序列中保存有字典的值
- items() 返回字典所有的项 它返回的是一个序列 序列包含的是双值子序列
双值分别是 字典中的key和value