一、元组
1. 什么是元组(tuple)
- 元组是python提供的容器型数据类型(序列),不可变(不支持增删改),有序(支持下标操作)
- 元组就是不可变的列表,一般保存不让修改的数据
- (元素1,元素2,元素3,...)
2.元素
- 空元组:tuple1 = () -----------没什么实际意义,因为元组不可变
- 元素个数是1的元组:tuple2 = (元素,) ----------- 如果一个元组中只有一个元素,这个元素后面必须加逗号!
- 元组数据中的小括号可以省略(多个数据直接用逗号隔开,表示的是一个元组)
3.获取元素(支持查):
- 基本和列表一样(查、+,*,>,<,>=,<=,==,!=,is、in、not in、len() 、tuple() )
- 特殊情况1:让变量的个数和元组中的元素的个数保持一致,来一一获取元组中每个元素的值
- 特殊情况2:让多个变量同时获取元组中的元素的时候,可以在一个变量前加 * 将这个变量变成一个列表,来获取不带 * 的变量获取后剩下的数据(注意,带*的变量只能有一个)
二、字典
1. 什么是字典(dict)
- 字典是pytho提供的容器型数据类型(序列),可变,无序
2. 字典中的元素
- {键值对1,键值对2,键值对3,...} :字典的元素就是键值对
- 键值对:以“键:值”的形式成对出现
- 键(key):要求不可变并且唯一(建议用字符串作为key),用来对值进行说明和区分的
- 值(value):任何类型的数据都可以作为值
3. 元素的操作
1)查:获取值
- 字典[key]:获取字典中key对应的value(如果key不存在会报错!)
- 字典.get(key):获取字典中key对应的value(如果key不存在不报错,结果是None)
- 字典.get(key,默认值):获取字典中key对应的value(如果key不存在不报错,结果返回默认值)
-
遍历字典:
a. 直接遍历:直接通过for循环遍历字典的时候,获取到的是所有的key
b. 间接遍历:不常用
2)增 / 改
- 字典[key] = value:如果key存在,修改key对应的值;如果key不存在,添加键值对
3)删
- del 字典[key]:删除字典中指定key对应的键值对,如果key不存在会报错
- 字典.pop(key):取出字典中key对应的值,如果key不存在会报错
4. 字典的相关操作
1)运算符
- 不支持数学运算(不能加不能乘);比较运算符只支持比较相等,不支持比较大小
2)in / not in
- key in 字典:判断字典中是否存在指定的key
3)len
- len(字典):键值对个数
4)dict
- 能转换成字典的数据要求:数据本身是序列,序列中的每个元素也是长度是2的序列,并且小序列中第一个元素是不可变的,不常用
5. 相关方法
1)clear
- 字典.clear():清空字典
2)copy
- 字典.copy():拷贝字典中的键值对产生一个新的字典
3)fromkeys
- dict.fromkeys(序列,值):创建一个新的字典,字典的key是序列的元素,key对应的value是值(新字典的所有键对应的值都是一样的)
4)keys,values,items
- 字典.keys():获取字典中所有的key,结果是一个序列
- 字典.values():获取字典中所有的value,结果是一个序列
- 字典.items():获取字典中所有的key和value,key和value以元组的形式返回
5)setdefault
- 字典.setdefault(key,value):添加键值对(不能修改)
6)update
- 字典1.update(字典2):使用字典2中的键值对去更新字典1(key不存在就添加键值对,key存在就修改对应的值)
三、集合
1. 什么是集合(set)
- 容器型数据类型(序列),可变(只支持增删查-查只支持遍历,不支持单独获取元素-因为无序,不支持改-因为无序)、无序
- 在遍历集合数据的时候比遍历列表数据的效率更高(前提:数据不重复,也不关心数据顺序)
2. 集合中的元素
- {元素1,元素2,元素3,...}
- 元素:不可变、唯一(自带去重功能)
- 注意:{}表示空字典,空集合为:set ()
3. 元素相关操作
1)查
- 集合不能单独获取指定的某一个元素(因为无序),只支持遍历
2)增
- 集合.add(元素):往集合中添加一个元素
- 集合.update(序列):将序列中的元素添加到集合中(自带去重)
3)删
- 集合.remove(元素):删除集合中指定的元素,元素如果不存在程序会报错
4)数学集合运算
- 并集(集合1 | 集合2):将两个集合中的元素合并产生新的集合
- 交集(集合1 & 集合2):获取两个集合公共的部分
- 差集(集合1 - 集合2):获取集合1中除了集合2以外的部分(从集合1中剔除出现在集合2中的元素)
- 对称差分(集合1 ^ 集合2):两个集合除了公共部分以外的部分,类似补集
- 包含关系1(集合1 >= 集合2):集合1是否包含集合2
- 包含关系2(集合1 <= 集合2):集合2是否包含集合1
四、补充
- python中所有的变量都是保存的数据在内存中的地址
- 用一个变量给另外一个变量赋值,实质是将变量中存储的地址赋过去
- 使用变量的实质是使用变量中地址对应的内存区域的值
- == :判断两个变量地址对应的值是否相等
- is :判断两个变量存储的地址是否相等