元组
1. 什么是元组
使用小括号()将多个元素括起来,多个元素之间用逗号隔开。
a.
容器,可以同时存储多个数据,不可变的,有序的
不可变---> 不可增删改
有序--> 可以通过下标获取元素
b.
元组可以是任何类型的数据
注意:
如果元组的元素只有一个的时候,必须在后面加逗号,才能是元组类型
2.
如果多个数据直接用逗号隔开,表示的也是一个元组
tuple2 = 10 , 20,'abc'
3.
元组的元素不支持增删改
列表获取元素的方式,元组都支持
元组[下标],元组[:],元组[::]
遍历 : 和列表一样for in
补充: 获取部分元素
可以通过相同变量个数,来一一获取元组中的元素
x,y=(10,20)
print(x,y)# x,y = 10,20
可以在变量前加 * 来获取部分元素(也适用于列表)
可以通过在列表或者元组前加*,来展开列表中的元素
(了解)
3. 元组的运算
+,*,==,is,in, not in -->和列表运算符一样
4. len(),max(),min()
6 . tuple
所有的序列都可以转换成元组,注意,字典只能间key值作为元组元素
7 . sorted() 对元组进行排序,虽元组不可变,但sorted是产生一个新的元组
可以通过sorted()方法,对元组进行排序,产生一个新的列表
2.字典
什么时候用容器类型的数据?---> 需要同时保存多个数据的时候
什么时候用列表?-->保存的多个数据是同一个类的数据,不需要区分每个数据代表的意义
什么时候用元组?-->保存的多个数据是同一个类的数据,不需要区分每个数据代表的意义。但不可变
什么时候用字典?-->保存的多个数据是不同类的数据(需要区分)
1. 什么是字典(dict)
字典是一个容器类的数据类型,可以用来存储多个数据(以键值对的形式)
{key1:value,key2:value2...}
大括号括起来key和value组成的才是字典
可变-->可以增删改
无序-->不能通过下标获取值
键(key): 只是用来定位值的,并不是真正想存的,想存的是value,值。key要求是不可变的数据类型
(数字,字符串,元组...)key也是唯一的 在同一字典只能存在一个不可重复使用
值(value):存储数据的,可以是任何类型的数据
3.字典的增删改查
1 .查(获取键值对的value)
获取字典的值,必须通过key来获取
a.
字典[key]-->获取key对应的值,只能获取单个。注意key值必须是存在的,
存在才能取到。否则会报错,KeyError
b.字典.get(key) --> 通过key获取值
注意:key值不存在的时候不会报错,结果是None
确定key一定存在的时候就使用[]语法,key可能不存在的时候就使用 字典.get(key)语法
c.直接遍历字典(推荐使用,经常使用)
通过for in 遍历字典拿到的是key值
d.(了解)其他遍历方式(一般不使用这两种,因为内部做的操作很多,占cpu很多)
直接遍历拿到值
2.增(增加键值对)
字典[key]=值 key原本不存在
3.修改值
字典[key]=值(key要本来就存在)
4.删(删除键值对)
a.del 字典[key]-->通过key删除键值对
b.字典.pop(key) ---> 取出key对应的值(实质还是删除key对应的键值对
4.字典的相关操作
1. 字典的相关运算
== : 判断两个字典的值是否相等。无序的所以键值对顺序不一样也可以
is: 判断两个字典的地址是否相等
in 和 not in :
key in 字典/ key not in 字典-->判断key是否存在
2.字典相关的函数和方法
1.len(字典)-->获取字典中键值对的个数
2.字典.clear()-->清空字典
3.字典.copy()-->将字典中的键值对复制一份产生一个新的字典
4.字典.formkeys(序列,值)-->创建一个字典,将序列中的每个元素作为key,后面的值作为value
5.字典.get(key)-->key不存在取None
字典.get(key,默认值)-->key不存在取默认值
6.字典.values()-->返回所有值对应的序列
字典.keys()-->返回所有键对应的序列
字典.items()-->将键值对转换成元组,作为一个序列的元素
注意:返回的都不是列表,是其他类型的序列
7.字典.setdefault(key)-->添加键值对,键是给的key,值是none
字典.setdefault(key.值value)-->添加键值对
注意:key存在的时候,对字典不会有任何操作(不会修改key对应的值)
8.字典1.update(字典2) --> 使用字典2中键值对去更新字典1。(已经存在的key就更新,不存在就添加
5.集合
1. 什么是集合(set)
容器,可以同时存储多个数据,可变的,无序的,同一集合的元素是唯一的,不可重复
可变-->可以增删改
无序-->不能通过下标获取元素
唯一性--->自带去重的功能
也是{29,'ssr',....}大括号 不过直接是一个个元素。
元素:只能是不可变的数据,不能是列表,字典。可以使元组
set2 = {} #这是空的字典 不是空集合
2. 集合的增删改查
a.查(获取元素)
集合不能单独的获取一个元素,也不能切片,只能通过for in 来遍历,一个个取出来
b. 增
集合.add(元素)-->在集合中添加一个元素
集合1.update(集合2)-->将序列2中的元素添加到集合1中
3.删(删除元素)
集合.remove(元素)--> 删除指定元素
4 .改(集合不能改)
无法取到下标
6.集合相关的数学运算
集合相关的运算:是否包含,交集,并集,差集,补集
1.包含
集合1 >= 集合2-->判断集合1中是否包含集合集合2
集合1<= 集合2-->判断集合2中是否包含集合1
2.交集 -> &
& --> 求两个集合公共的部分
3.求并集
| --> 求两个集合的和
4.求差集
集合1-集合2 --> 求集合1中除了集合2以外的部分
5.求补集
^ --> 求两个集合除了公共部分以外的部分
7.类型转换
1 . 整型 int
int()
浮点数、布尔、部分字符串(整数字符串才可以转换)可转换成整型
print(int(12.33)) #False 只能是去掉引号本身就是一个整数的字符串才能转换
2. 浮点数Float
整数,布尔,部分字符串(去掉引号后是数字的才能转换)
3. 布尔
所有的数据都可以转换成布尔值,列表 字典等为空或者 数字为0的时候转换False。其他都为True
4. 字符串
所有的数据都可以转换成字符串
数据转换成字符串就是在数据的最外面加引号
5. 列表
list()
序列才能转换成列表。
将序列中的元素作为列表中的元素。字典转换成列表,将字典的key作为列表的元素
6.元组
tuple()
只能将序列转换成元组,字典还是key转换成元素
7.字典
dict()
序列的每个元素有两个元素的数据才能转换成字典,序列的每个元素(看成是一个整体)有两个元素才能转换成字典
8.集合
set()
序列可以转换成集合,有去重的功能,且无序。可以用来去重