zoukankan      html  css  js  c++  java
  • 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('密码格式错误')

     

  • 相关阅读:
    在win7系统下安装把Ubuntu17.04安装在另一个硬盘开机无法进入Ubuntu问题的一种解决办法。【转】
    快速上手Ubuntu之安装篇——安装win7,Ubuntu16.04双系统【转】
    win7 64位系统与Ubuntu14.04 64位系统双系统安装【转】
    kernel中对文件的读写【学习笔记】【原创】
    快速解决Android中的selinux权限问题【转】
    Android如何配置init.rc中的开机启动进程(service)【转】
    linux内核驱动中对文件的读写 【转】
    很好的 DHCP协议与dhcpcd分析【转】
    android DHCP流程【转】
    Android wifi 从连接态自动断开的解决办法(dhcp导致)【转】
  • 原文地址:https://www.cnblogs.com/miyuki/p/9174247.html
Copyright © 2011-2022 走看看