【4】python_基础_集合、json模块、函数,,1 集合(天生去重)


1 集合(天生去重)

1.1 定义集合

集合是无序的

 1 # 定义集合:天生去重 2 nums = [1,1,2,3,4,4] 3 num_set = set (nums)    # 1、使用set将其他类型转成集合(去重) 4 print(‘1======‘,num_set)      #   {1, 2, 3, 4} 5  6 nums2 = {1,1,2,3,4,4}   # 2、直接定义集合 7 print (‘2======‘,nums2)    #   {1, 2, 3, 4} 8  9 nums3 = set()   # 3、定义空集合,不能写成num3={}-定义空字典10 print (‘3======‘,nums3)
技术分享图片
1 1 1====== {1, 2, 3, 4}2 2 2====== {1, 2, 3, 4}3 3 3====== set()
View Code

1.2 集合取值

技术分享图片
1 1 # 集合取值2 2 for n in nums2:3 3     print(‘4======‘,n)
View Code技术分享图片
1 1 4====== 12 2 4====== 23 3 4====== 34 4 4====== 4
View Code

1.3 集合关系

技术分享图片

交集  set1.intersection(set2) 取set1及set2中都有的set1 & set2并集  set1.union(set2)  取set1合并set2set1 | set2  差集set1.difference(set2)  取set1中有的,set2中没有的set1 - set2对称差集set1.symmetric_difference(set2)  取 (set1 - set2) | (set2-set1)set1 ^ set2父集、子集set2.issubset(sest1)  set2是set1的子集?如果是,返回True;如果不是,返回Falseset1.issuperset(set2)  set1是set2的父集?如果是,返回True;如果不是,返回False技术分享图片
 1 1 # http://www.nnzhp.cn/archives/160 2  2 # 集合作用 3  3     # 集合是无序的,不能通过下标取值 4  4     #  1、去重 5  5     # 2、关系测试-交集,差集,并集,反向差集/对称差集 (eg.list1、list2 数据处理) 6  6 list =[1,2,3,4,5,3,6] 7  7 nums={2,3,4,3}  #集合是无序的,不能通过下标取值,可以循环 8  8 list_2 =[2,3,5,7,8] 9  9 list_3 =[1,3,6]10 10 11 11 #定义集合12 12 list = set(list)13 13 list_2 = set (list_2)14 14 list_3 = set (list_3)15 15 16 16 print(‘1=====‘,list.intersection(list_2))    # 交集 (取list中且list2中有的)   {2, 3, 5}17 17 print(‘2=====‘,list & list_2)    # 交集 (取list中且list2中有的)   {2, 3, 5}18 18 19 19 print(‘3=====‘,list.union(list_2))   # 并集(去重统一展示)    {1, 2, 3, 4, 5, 6, 7, 8}20 20 print(‘4=====‘,list | list_2) # 并集(去重统一展示)    {1, 2, 3, 4, 5, 6, 7, 8}21 21 22 22 print(‘5=====‘,list.difference(list_2))  # 差集 (取list中有的,list2中没有的。即属于list且不属于list2的元素集合)    {1, 4, 6}23 23 print(‘6=====‘,list_2.difference(list))  # 差集 (取list_2中有的,list中没有的)   {8, 7}24 24 print(‘7=====‘,list -list_2)  # 差集 (取list中有的,list2中没有的)    {1, 4, 6}25 25 26 26 import string27 27 all_nums = set(string.digits)28 28 print(‘8=====‘,all_numbs)29 29 num4 = {‘1‘,‘2‘,‘3‘}30 30 print(‘9=====‘,all_nums.issuperset(num4))31 31 32 32 print(‘10=====‘,list_3.issubset(list))    #返回布尔值,如果list_3是list的子集(list_3的值,在list中都有),返回True33 33 print(‘11=====‘,list.issuperset(list_3))  #返回布尔值,如果list是list_3的父集(list_3的值,在list中都有),返回True34 34 35 35 print(‘12=====‘,list.symmetric_difference(list_2))    #对称差集   (取"list中有的,list2中没有的" 并上 "list_2中有的,list中没有的"  。即集合list与集合list2中所有不属于list∩list2的元素的集合。即把2集合中都有的去掉){1, 4, 6, 7, 8}36 36 print(‘13=====‘,list ^ list_2)    #对称差集   (取"list中有的,list2中没有的" 并上 "list_2中有的,list中没有的"  去重){1, 4, 6, 7, 8}
View Code技术分享图片
 1 1 1===== {2, 3, 5} 2  2 2===== {2, 3, 5} 3  3 3===== {1, 2, 3, 4, 5, 6, 7, 8} 4  4 4===== {1, 2, 3, 4, 5, 6, 7, 8} 5  5 5===== {1, 4, 6} 6  6 6===== {8, 7} 7  7 7===== {1, 4, 6} 8  8 8===== {‘1‘, ‘7‘, ‘4‘, ‘0‘, ‘2‘, ‘6‘, ‘8‘, ‘9‘, ‘3‘, ‘5‘} 9  9 9===== True10 10 10===== True11 11 11===== True12 12 12===== {1, 4, 6, 7, 8}13 13 13===== {1, 4, 6, 7, 8}
View Result

密码较验练习

技术分享图片
 1 1 #!/usr/bin/python 2  2 # -*- coding:utf-8 -*- 3  3 # Author:hwm 4  4  5  5 #密码较验:必须包含大小写字母、数字、特殊字符 6  6 import string 7  7 letters = set (string.ascii_letters) 8  8 digits = set (string.digits) 9  9 pun = set (string.punctuation)10 10 11 11 # all = letters| digits| pun12 12 #if pwd.issubset(all):13 13 for i in range(5):14 14     pwd = input(‘passwd:‘).strip()15 15     pwd = set(pwd)16 16     if pwd & letters and pwd & digits and pwd & pun:17 17         print(‘密码合法‘)18 18     else:19 19         print(‘密码不合法,密码必须包含大小写字母、数字、特殊字符‘)
View Code技术分享图片
1 1 passwd:12 2 密码不合法,密码必须包含大小写字母、数字、特殊字符3 3 passwd:abc1a4 4 密码不合法,密码必须包含大小写字母、数字、特殊字符5 5 passwd:abc1e)6 6 密码合法7 7 passwd:
View Result

1.4 集合操作方法

添加  add(ele)  一次添加一个update(list)  一次添加多个删除pop()  随机删除一个元素。discard(ele)  删除元素。如果元素不存在,不报错,返回None。推荐使用。remove(ele)  删除元素。如果元素不存在,报错。不推荐使用

技术分享图片
 1  1 print(‘-------------集合操作-------------‘) 2  2 print(‘-------------添加-------------‘) 3  3 list.add(777)   # 一次添加一个 4  4 print(‘14=====‘,list) 5  5 list.update([888,999]) # 同时添加多个 6  6 print(‘15=====‘,list) 7  7 print(‘-------------删除-------------‘) 8  8 list.remove(999)    # 删除一个不存在的元素,报错 9  9 print(‘16=====‘,list)10 10 list.pop()  # 随机删除集合中的一个元素11 11 print(‘17=====‘,list)12 12 list.discard(888)13 13 print(‘18=====‘,list)        # 删除一个不存在的元素,不报错
View Code技术分享图片
1 1 -------------集合操作-------------2 2 -------------添加-------------3 3 14===== {1, 2, 3, 4, 5, 6, 777}4 4 15===== {1, 2, 3, 4, 5, 6, 999, 777, 888}5 5 -------------删除-------------6 6 16===== {1, 2, 3, 4, 5, 6, 777, 888}7 7 17===== {2, 3, 4, 5, 6, 777, 888}8 8 18===== {2, 3, 4, 5, 6, 777}
View Result

【4】python_基础_集合、json模块、函数

评论关闭