zoukankan      html  css  js  c++  java
  • Python学习之==>集合

    1、简介

    • 集合也是一种数据类型,一个类似列表东西,它的特点是无序的,不重复的,也就是说集合中是没有重复数据的。

    2、集合的作用

    • 它可以把一个列表中重复的数据去掉,而不需要你再写判断
    • 可以做关系测试,比如说有两个班,一个性能测试班,一个是接口测试班的,想找出来既学习了性能又学习了接口测试的同学,就可以用集合。

    3、定义集合

    1 # 集合:天生去重,集合是无序的
    2 list = [2,3,1,2,3,4]
    3 s1 = set()               # 定义空集合
    4 s2 = set('aaee1122')     # 集合会把重复数据去掉
    5 s3 = set(list)           # 把list转换成一个集合
    6 s4 = set([2,3,1,2,3,4])  # 这种方式和上面的都是把list转换成一个集合
    7 s5 = {1,2,1,4,2,5,7}     # 这种方式直接定义一个集合

    4、集合相关操作

    1 s = {1,2,3,4,5,6,7}
    2 s.add(9)     # 加元素
    3 s.pop()      # 随机删除一个元素
    4 s.remove(7)  # 指定删除哪个元素
    5 s.update({11,12,13})  # 把另外一个集合加到s集合中去

    5、交集

    1 s1 = set('aaee1122')
    2 s2 = {'1','2','1','4','2','5','7'}
    3 print(s1 & s2)              # 取交集
    4 print(s1.intersection(s2))  # 取交集
    5 print(s1.isdisjoint(s2))    # 判断s1和s2是否有交集,如果没有交集,返回True,有交集则返回False

    6、并集

    1 # 并集:把两个集合合并到一起,去重
    2 s1 = set('aaee1122')
    3 s2 = {'1','2','1','4','2','5','7'}
    4 print(s1 | s2)       # 取并集
    5 print(s1.union(s2))  # 取并集

    7、差集

    1 # 差集:去掉前面的集合中两个集合都有的元素并去重
    2 s1 = set('aaee1122')
    3 s2= {'1','2','1','4','2','5','7'}
    4 print(s1 - s2)
    5 print(s1.difference(s2))

    8、对称差集

    1 # 对称差集:去掉两集合里面都有的,然后合并两个集合并去重
    2 s1 = set('aaee1122')
    3 s2 = {'1','2','1','4','2','5','7'}
    4 print(s1 ^ s2)
    5 print(s1.symmetric_difference(s2))

    9、练习

     1 # 校验密码里面是否包含数字、大写字母、小写字母和特殊符号
     2 import string
     3 num_set = set(string.digits)
     4 upper_set = set(string.ascii_uppercase)
     5 lower_set = set(string.ascii_lowercase)
     6 pum_set = set(string.punctuation)
     7 for i in range(3):
     8     pwd = input('请输入密码:').strip()
     9     pwd_set = set(pwd)
    10     if pwd_set & num_set and pwd_set & upper_set and pwd_set & lower_set and pwd_set & pum_set:
    11         print('密码输入合法')
    12         break
    13     else:
    14         print('密码不合法,密码必须包含数字、大写字母、小写字母和特殊字符')
    15 else:
    16     print('错误次数超限')
  • 相关阅读:
    Android Sensor Test
    [转]Android重力感应开发
    nexus5 root教程
    C# split字符串 依据1个或多个空格
    leetcode
    [ffmpeg 扩展第三方库编译系列] 关于须要用到cmake 创建 mingw32编译环境问题
    JAVA网络爬虫WebCollector深度解析——爬虫内核
    Apache htaccess 重写假设文件存在!
    javascript --- 事件托付
    LeetCode——Populating Next Right Pointers in Each Node II
  • 原文地址:https://www.cnblogs.com/L-Test/p/8978156.html
Copyright © 2011-2022 走看看