Day06 元组,字典,集合
1.元组及其内置方法:
- 定义:tuple(),用小括号()存放多个元素,每个元素中间用逗号隔开,在元组只有1个元素时,需要加逗号,如:t = (1,) 用tuple()方法定义时括号里面必须是可迭代对象
- 作用:存储多个元素,这些元素不需要改动
- 类型:不可变类型,有序
- 方法:len() count() index()切片,按索引取值,循环
- 注意:当元组中存在列表元素时,这个列表里面的元素时可以修改的
t = (1, 2, 3, [4,5,6]) t[3].append((90)) # (1, 2, 3, [4, 5, 6, 90]) print(t)
2.字典及其内置方法
-
定义:dict(),用{} 来存放多个键值对(key:value的格式).每个元素中间用逗号隔开,key必须为不可变类型,value可以是任意类型
- 作用:存放多个值,每个值都都有对应的key来描述value的信息
- 类型:可变类型,无序
- 取用:通过key来取value
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} print(dic['name']) # 取出key为'name'的值
- 方法:
- len() 获取键值对的个数
- 循环遍历:
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} for k,y in dic.items(): # 循环遍历dic中的键值对 print(k,y,end=' ') # name yanglingyao age 18 hobby play
- keys() 获取字典中所有key
- values() 获取字典中所有的value
- items() 获取字典中所有的键值对
6.增:
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} dic['qq'] = 123 # 若key存在则修改。若不存在则添加 print(dic)
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} dic.setdefault('sex','男') # 若key不存在则添加这个键值对 e = dic.setdefault('name',123) # 若key存在则返回原值,有返回值,不对原字典作修改 print(e) # yanglingyao print(dic) # {'name': 'yanglingyao', 'age': 18, 'hobby': 'play', 'sex': '男'}
7.删:
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} del dic['name'] print(dic) # {'age': 18, 'hobby': 'play'} 无返回值
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} ele = dic.pop('name') # 根据指定key弹出键值对 print(ele) # yanglingyao # 有返回值,返回的是key的值, print(dic) # {'age': 18, 'hobby': 'play'}
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} ele = dic.popitem() # 随机弹出一个键值对 print(ele) print(dic)
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} dic.clear() # 清空字典 print(dic) # {}
8.改:
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} dic['name'] = 123 # 无则添加有则修改 print(dic) # {'name': 123, 'age': 18, 'hobby': 'play'}
9.查:
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} print(dic['name']) # 通过key查找 print(dic['qq']) # 若key不存在则报错
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} print(dic.get('name')) # 若找到返回key对应的值 print(dic.get('qq','找不到')) # 若找不到返回你想要的提示信息,默认为None
10.fromkeys()
dic = {'name': 'yanglingyao', 'age':18, 'hobby': 'play'} l = [1, 2, 3, 4] d1 = dict.fromkeys(l,'hello') # 以一个可迭代对象里的元素为key生成一个新的字典,可指定key的值,若不传参则返回None, # 注意指定值的时候,所有key的值都是同一内存地址,若是列表则一个改动都改动 print(d1) # {1: 'hello', 2: 'hello', 3: 'hello', 4: 'hello'}
3.集合及其内置方法
-
定义:在{}内存放多个值,用逗号隔开 set()
- 作用:去重,关系运算
- 特性: 1.每个值都是不可变的。2.元素不能重复
- 无序,可变类型
- 差集
s = {1, 2, 3, 4, 5} s1 = {4, 5, 6, 7, 8} s2 = s - s1 print(s2) # {1, 2, 3} 差集: 减去公共所有的
6.并集
s = {1, 2, 3, 4, 5} s1 = {4, 5, 6, 7, 8} s2 = s | s1 print(s2) # {1, 2, 3, 4, 5, 6, 7, 8} 并集。两个集合去重合并
7.交集
s = {1, 2, 3, 4, 5} s1 = {4, 5, 6, 7, 8} s2 = s & s1 print(s2) # {4, 5} 交集:公共所有的
8. 对称差集
s = {1, 2, 3, 4, 5} s1 = {4, 5, 6, 7, 8} s2 = s ^ s1 print(s2) # {1, 2, 3, 6, 7, 8} 对称差集:去除共有的