zoukankan      html  css  js  c++  java
  • python-集合

    集合
    类似列表,无序,不重复,集合中没有重复的数据,不能根据下标取值
    空集合:set()
    空元组:tuple()
    空列表:list()
    非空集合: {123}集合, 集合其实就是不存value的字典
    集合的作用:
    1、把一个列表中的重复数据去掉,不需要你再写判断
    2、可做关系测试:交集、差集、并集、反向差集、对称差集
    定义集合
    list = [2,3,1,2,3,4]
    s_list = set(list)#这样就定义了一个集合
    set1 = set([1,3,4,5,6])#这种方式和上面的都是把list转换成一个集合
    set2={'hehe','hehe1','hehe3'}#这种方式是直接定义一个集合
    集合操作
    list1 = {1, 2, 3, 4, 5, 6, 9}
    list2 = {2, 3, 4, 6, 1}
    list3 = {1, 2, 3}
    print(list1.intersection(list2)) # 取交集,也就是取list1和list2中都有的
    print(list1 & list2)# 取交集
    print(list1.union(list2)) # 取并集,也就是把list1和list2合并了,然后去除重复的
    print(list1 | list2)# 取并集
    print(list1.difference(list2)) #取差集 在list中存在,在list2中没有的
    print(list1 - list2)
    print(list3.issubset(list1))#判断list3是不是list1的子集
    print(list1.issuperset(list3))#判断list1是不是list3的父集
    print(list1.isdisjoint(list3))#判断list1和list3是否有交集
    print(list1.symmetric_difference(list2))#对称差集,输出两个列表中都没有的值,也就是把两个集合中相同的去掉
    print(list1 ^ list2)
    list1.add(888)#添加元素
    list1.update([777,666,666])
    list1.remove(777)#删除元素,如果元素不存在会报错
    list1.pop()#删除一个随机的元素,并返回删除的元素
    list1.discard('dddd')#如果删除的元素存在,删除,不存在不做处理
    练习:
    校验密码的复杂度
    import string
    password = input("请输入密码:").strip()
    if password:
    print("输入不为空")
    else:
    print("密码不能为空")
    p_set = set(password)
    # print('大写字母取',p_set.intersection(set(string.ascii_uppercase)))
    # print('小写字母取',p_set.intersection(set(string.ascii_lowercase)))
    # print('数字取',p_set.intersection(set(string.digits)))
    # print('特殊字符取',p_set.intersection(set(string.punctuation)))
    if p_set.intersection(set(string.ascii_uppercase)) and
    p_set.intersection(set(string.ascii_lowercase)) and
    p_set.intersection(set(string.digits)) and
    p_set.intersection(set(string.punctuation)):
    print("密码合法")
    else:
    print('密码必须包含大写字母、数字、特殊字符串')
  • 相关阅读:
    mysql -- 字符串子串
    eclipse 快捷键
    eclipse git --- add to index
    eclipse -- git 同步
    jquery
    烂泥:KVM、kickstart与NFS集成
    烂泥:KVM与kickstart集成
    烂泥:kickstart无人值守安装CentOS6.5
    烂泥:【解决】Ubuntu下使用SSH连接centos系统很慢
    烂泥:CentOS安装及配置TFTP服务器
  • 原文地址:https://www.cnblogs.com/qx21007874/p/10725178.html
Copyright © 2011-2022 走看看