''' 集合 set 特性,在集合内重复的值 ,它会自动去重,只留下不同的值 集合的创建 :由花括号{}包裹,值与值之间逗号隔开 ''' li1 = [1, 2, 5,3,5,4,6] #列表 st1 = {1, 2, 3, 4, 5, 6,6,4,7,2,5,1,6} #集合 print(type(li1)) print(type(st1)) print(li1) print(st1) print(set(li1)) print('-------------------------------') li2 = [2,5,1,2,5,65,8,6,7] print(set(li2)) n_st = set(li2) print(n_st) #集合特性:去重只能去重比较微小的一些数值 ,会进行默认排序 #集合是散列类型之一,所以里面的数据 无序,当集合中数据类型有多种时,每一次运行集合时里面的逻辑都会改变 st2 = {5,8,6,9,'AA','%$',2,5} #集合中出现不同类型的元素时,排序逻辑每次都会改变 print(st2) ''' 集合的运算 交集 两个集合内相同 的元素 符号为: (&) 并集 丙从此集合内所有的元素合并在一起 符号为(|) 竖杠 差集 两个保合中相同的元素都被去除只剩下两个集合中不相同的元素 符号为减号 - 注意:两个集合相减,只剩下两集合中前一个不相同的元素 ''' print('----------------------------------------') set1 = {1,2,3,9,'q'} set2 = {1,2,'A'} print(set1 & set2) #输出为两个集合中相同 的元素,重叠部分保留不输出 print('并集','并集','并集','并集','并集') print(set1 | set2) #输出两个集合中所有的不相同的元素 print('差集差集差集差集差集') print(set1 - set2) ''' 集合中的增删改查 因为集合是无序的,所以查询不到里面的内容,同时也无法修改 所以集合中只有【增加和删除】的功能 add() 增加一个元素 update() 更新 可以增加多个元素 pop() 随机删除 (列表 中学习过) remove() 移除 (列表中学习过)可以删除指定的元素 ''' # add()在存在的集合内添加一个元素 s1 = {1,2,3,4} s1.add('A') #add 只能添加一个元素 print(s1) #update ({值1, 值2, 值3}) 添加多个元素 print('update-----------------------') s1.update({'A',2, 8}) print(s1) #pop() 在集合中为随机删除一个元素(因为集合中的元素是无序的) print('pop---------------------------') s2 = {1,5,8,7,9} s2.pop() s2.pop() print(s2) print('remove------------------------------') s2.remove(9) #只能删除一个指定的内容9 print(s2) print('字典---------------------------------') ''' 创建列表,示范索引取值 ''' li3 = ['张三', '李四', '王五'] #获取李四这一个值 ,需要使用索引获取 print(li3[1]) ''' 字典 dict 创建方法:以花括号包裹,其中字典的每一个元素都是由键值 对组成 ''' # di = { '1' :'张三', '2':'王五', '3':'李四' } #前面 的学号为键,后面名字即为值 print(type(di)) print(di) #第二种方法 # 对于字典的第二种创建方式 :对于键的命名规范有要求: #键必须 是字母 或者下划线开头后面可以跟任意字母字符及下划线 di2 = dict(a = 1, b = 2) print(type(di2)) print(di2) print('空字典------------------------------------') #关于创建空集合和空字典的区别 date = {} #创建空字典 print(type(date)) print(date) data1 = set() #创建空集合 print(type(data1)) #查看数据类型 print(data1) data1.add('1') print(data1) #创建字典的第三种方法 print('创建字典的第三种方法---------------------------') li4 = {'A':'2', 'b':'3', 'D':'6'} print(type(li4)) di3 = dict(li4) print(di3) #字典中的get 方法 ,与普通 获取的内容一样,只是对于获取不存在的键 时,不会报错,而是输出None(无) print(di3.get('A')) print('字典测试 -------------------------------------') print(di3.get('D')) print(di3.get('7')) #输出结果为None 意思就是没有这个值 ''' 字典不同于元组,字典的值是可以变的,所以字典也是可以进行增删改查 ''' di5 = {'A':'2', 'b':'3', 'D':'6'} """ 修改与增加,可以通过键 获取位置从而修改值 的内容 形式: 字典名【键】 = 值 """ #把di5中的A改成a di5['A'] = 'a' print(di5) #增加 #格式如下 di5[5] = '99' print(di5) ''' 对于字典内置方法的修改和添加 setdafault update ''' #setdafault 字面意思为设置默认值,如果里面输入了存在的键,则会将它打印输出为对应的值 print('*********************************************************') di6 = {'A':'2', 'b':'3', 'D':'6'} print(di6.setdefault('A','D')) print(di6) print('-------------------------------------------------------------') #update,字面意思和用法一样,意为:修改更新 di6.update({'A':'小倪'}) print(di6) """ 删除 pop popitem 删除最后一对键值对 del remove """ di6.pop('A') #删除指定健的值 print(di6) #使用popitem 方法随机删除一对键值对(python3.6 后版 本删除最后一个) di6.popitem() #删除最后一对键值对,本质是随机删除,但是在PHTHONE3.6版本之 print(di6) #使用DEL di7 = {'A':'2', 'b':'3', 'D':'6',1:'9'} del di7[1] del di7['A'] print(di7) ''' 获取字典视图:视图可以理解 ''' print('###########################################') di9 = {'A':'2', 'b':'3', 'D':'6',1:'9'} print(di9.keys()) #获取字典中的所有键值对的键 print(di9.values()) #获取字典中所有键值 对的值 print(di9.items()) # li_keys = list(di9.keys()) print(li_keys) #打出所有的键 print(type(li_keys)) #查看类型 print('##################################################') li_values = str(di9.values()) #将获取的值 转变成字符串类型 print(li_values) #通常对于获取的值 会是会转变为列表类型(list) print(type(li_values)) lis = list(di9.items()) #获取内所有元素的健 值 print(lis) print(type(lis)) print('=================================================') for k in di9.keys(): print(k) for v in di9.values(): print(v) for k,v in di9.items(): print(f'键为{k},值为{v}') print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$') #作业: ''' 1,找出两个列表中相同的元素,并打印出来 2,判断用户输入的是不是一个手机号码 要求:以1开头 长度为11位len() 纯数字 ''' liA = [5,8,9,6,3,4,'i'] liB = ['A',5,9,'C'] print(type(liA)) liA = set print(type(liA)) print(liA & liB)
python 第五课 集合、字典
最新推荐文章于 2024-09-09 00:00:00 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)