python集合

1、集合:

  (1)天生去重,重复内容会去掉不会显示、循环

  (2)关系测试:交集、差集、并集、对称差集、反向差集

 

2、,集合与字典很相近,字典是{k:v}形式的,而集合是{1,2}形式的,集合是无序的,不能用下标取值

   list={}是定义一个空字典而不是集合

   如果想定义空集合

  list=set() 表示定义一个空的集合

  定义集合的两种方式:

  ①list={1,2,3,4}

  ②list=[1,2,3,4]

    list=set(list)

 

定义三个集合

list1={1,2,3,5,6,8}

list2={2,3,4,5,7}

list3={3,5,8}

 

3、将list转集合:

  list1=[1,2,3,4,5,6]

  list1=set(list1)

 

4、交集(取2个集合里面都有的)

  list1.intersection(list2)

  另一种写法:list1 & list2

结果:{2,3,5}

 

5、并集(合并合集,去掉重复的)

  list1.union(list2)

  另一种写法:list1 | list2

结果:{1,2,3,4,5,6,7,8}

 

6、差集(取出list1中有的,list2中没有的)

  list1.difference(list2)

  另一种写法:list1 - list2

结果:{1,6,8}

 

7、子集(list1完全包含list3的值)

  list3.issubset(list1)

结果:True

 

8、父集(list1的值在list3中都有)

  list1.issuperset(list3)

结果:True

 

9、对称差集(把两个集合里共有的去掉)

  list1.symmetric_difference(list2)

  另一种写法:list1 ^ list2

结果:{1,4,6,7,8}

 

10、集合操作:

  ①给集合添加一个元素

    list.add(777)

  ②给集合同时添加多个元素

    list.update([888,999])

  ③删除元素,不存在的元素会报错

    list.remove(999)

  ④删除元素,不存在的元素不会报错

    list.discard(9999)

  ⑤随机删除元素,当集合是由列表和元组组成时,set.pop()是从左边删除元素

    list.pop()

 

11、练习

   要求:

   输入密码必须包含大写字母、小写字母、数字、特殊字符

 1 import string        #引入string模块
 2 pwd=input('请输入密码:').strip()   #输入密码,去掉空格
 3 pwd=set(pwd)         #将接收的字符串变为集合类型
 4 num1=set(string.ascii_lowercase)     #将所有大写字母转换成集合类型赋给num1
 5 num2=set(string.ascii_uppercase)     #将所有小写字母转换成集合类型赋给num2
 6 num3=set(string.digits)              #将所有数字转换成集合类型赋给num3
 7 num4=set(string.punctuation)         #将所有特殊字符转换成集合类型赋给num4 
 8 if pwd&num1 and pwd&num2 and pwd&num3 and pwd&num4:#判断pwd是否在集合中,使用交集的方式
 9      print('密码格式正确')
10 else:
11     print('密码格式错误')

 

posted @ 2018-06-13 16:23  Miyuki蛋卷  阅读(236)  评论(0编辑  收藏  举报