zoukankan      html  css  js  c++  java
  • 四. python集合

    一. 集合

    set() 类似字典(dict) 是一组key 集合 不存储
    本质: 无序 和 无重复的元素的集合

    集合:无序,即无序存索引相关信息

    set是没有索引的

    创建:
    创建set 需要 一个列表(list)或者元组(tuple)或者字典(dict)作为输入的集合

    1. 重复元素可以在set中自动过滤

    #  重复元素可以在set中自动过滤
    s2=set([1,2,3,4,1,2,3])
    print(s2)  #{1, 2, 3, 4}
    
    
    s3=set((10,22,33,4,10,22,33))
    print(s3)  #{33, 10, 4, 22}

     2.set()  类似字典(dict)   是一组key 集合  不存储

    # set()  类似字典(dict)   是一组key 集合  不存储
    s4=set({"name":"小明","age":25,"study":"python"})
    print(s4)  #{'study', 'age', 'name'}

     3.添加 add()

    # set添加 add
    s5=set([1,2,3])
    s5.add(1000)
    print(s5)  #{1000, 1, 2, 3}
    s5.add(3)  #可以添加重复的元素  但是不会有效果
    # s5.add([7,8,9])    # set 的元素不能是列表  因为列表是可变的  
     
    s5.add((7,9,6))
    print(s5)   # {1000, 1, 2, 3, (7, 9, 6)}  因为元组不可变所有能添加进去
    
    s5.add({"name":"张三"})  
    print(s5)  #set的元素不能是字典  因为字典是可变的

    4.更新update() 

    # 添加更新update
    # update  插入添加整个 list tuple 字符串打乱了
    s6=set([1,2,3])
    s6.update([6,7,9])
    print(s6)  #{1, 2, 3, 6, 7, 9}  字符串打碎查入了
    
    
    s7=set([1,2,3])
    s7.update((45,46,47))
    print(s7)    #1, 2, 3, 45, 46, 47}
    
    s8=set([1,2,3])
    s8.update(("name"))
    print(s8)   #{1, 2, 3, 'a', 'e', 'n', 'm'}

    5.删除remove()

    s9=set([1,2,3])
    s9.remove(2)
    print(s9)  #{1, 3}

    6.遍历

    # 循环遍历
    s10=set([1,2,3,4,5,6])
    for i  in s10:
     print(i)   #1 2 3 4 5 6 
    
    
    
    s11=set("name")
    for i  in s11:
     print(i)   #n a m e

    7.set里面有交集和并集

    # 交集  &
    str12=set([1,2,3,4,5])
    str13=set([11,2,3,44,55])
    
    a1=str12&str13
    print(a1) #{2, 3}
    print(type(a1)) #<class 'set'>
    # 并集  |
    str12=set([1,2,3,4,5])
    str13=set([10,2,3,6])
    a2=str12|str13
    print(a2)   #{1, 2, 3, 4, 5, 6, 10}
    print(type(a2)) #<class 'set'>
    # 集合
    # python 集合(set)  
     
    
    
    
    
    # 01   isdisjoint #判断是否是相交集,返回bool值
    s1={1,2}
    
    s2={3,9,5}
    
    aa=s1.isdisjoint(s2)
    
    print(aa)    True
    
    
    
    
    
    # 0.2 issubset              #判断是否是其子集
    s2={1,2}
    
    s3={1,2,5}
    
    bb=s2.issubset(s3)     # s2是s3 的子集
    
    print(bb)  # True
    
    
    
    
    集合:集合是具有某种特定性质的事物的总体;
    
    引入时间:python 2.3 以后版本, 位于Stes模块;
    
    set(tuple)                #创建序列
    
    集合的特点:交集和并集
    
    a=set(range(10))
    b=set(range(20))
    c=a|b
    print c
    set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
    
    d=a&b
    print d
    set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    
    函数:
    
    1.issubset              #判断是否是其子集
    
    a.issubset(b)           # 返回bool值
    
    2.add                   #集合中增加元素
    
    a=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    a.add(11)
    print a
    set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11])
    
    3.clear                  #删除集合中所有元素
    
    4.copy                   #复制集合中的元素
    
    5.difference             #判断集合之间的差异返回新的集合
    
    a=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
    b=set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
    
    b.difference(a)           #判断b与a之间的差异
    set([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
    
    6.remove                  #删除序列中指定的元素
    
    7.isdisjoint              #判断是否是相交集,返回bool值
    
    8.issuperset              #判断是否是超级,返回bool值
    
    b.issuperset(a)           #判断b是否是a的超集
    
    超集定义:如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集。 S1是S2的超集,则S2是S1的真子集,反之亦然
    
    9.union                   #连接两个集合,形成新的集合
    
    a.union(d)
    
    10.update                 #更新集合
    
    a.update(b)               #将b集合更新到a集合中
    
    11.pop                    #删除集合中的任意一个元素
    
    a.pop()  
    
    12.discard                #删除集合中存在的指定元素
    
    a.discard(2)              #元素2如果存在集合a中,则删除;
  • 相关阅读:
    腾讯TBS加载网页无法自适应记录
    filter过滤器实现验证跳转_返回验证结果
    Oracle不连续的值,如何实现查找上一条、下一条
    springmvc.xml 中 <url-pattern></url-pattern>节点详解
    spring拦截器-过滤器的区别
    (转)spring中的拦截器(HandlerInterceptor+MethodInterceptor)
    @Value("${xxxx}")注解的配置及使用
    mybatis BindingException: Invalid bound statement (not found)
    spring声明式事务管理方式( 基于tx和aop名字空间的xml配置+@Transactional注解)
    Spring事务管理详解_基本原理_事务管理方式
  • 原文地址:https://www.cnblogs.com/Sup-to/p/10840960.html
Copyright © 2011-2022 走看看