zoukankan      html  css  js  c++  java
  • 9-25 集合

    集合(没有改操作)

    可变的数据类型,但是里面的元素必须是不可变(元组,bool,int,str)的数据类型,无序,不重复

    增add

    set1 = {'mary','jack'}
    set1.add('higj')
    print(set1)#{'jack', 'mary', 'higj'}-----注意:无序的
    

    改update

    set1.update('ghj')#{'g', 'mary', 'h', 'jack', 'j'}
    print(set1)
    

    删除pop、remove、clear

    set1.pop()#随机删除
    print(set1)#{'mary'}
    
    set1.remove('mary')#按照元素删除
    print(set1)#{'jack'}
    
    set1.clear()#清空集合
    print(set1)#set()
    

    discard()用于从集合中删除一个特定的元素,如果元素不存在于这个集合中则忽略该操作

    set32={1,2,3,4}  
    set32.discard(4)  
    print(set32)   #{1,2,3}
    set32.discard(5)  
    print(set32)   #{1,2,3}

    for i in set1:
        print(i)
    

    集合的交集、并集、反交集、差集等

    set1 = {1,2,3,4,5}
    set2 = {4,5,6,7,8}
    
    print(set1 & set2)#求交集,结果{4, 5}
    print(set1.intersection(set2))#功能同上
    
    print(set1 | set2)#求并集,结果{1, 2, 3, 4, 5, 6, 7, 8}
    print(set1.union(set2))#功能同上
    
    print(set1 ^ set2)#求反交集{1, 2, 3, 6, 7, 8}
    
    print(set1 - set2)#求差集(即set1独有的){1, 2, 3}
    
    set1 = {1,2,3}
    set2 = {1,2,3,4,5,6}
    print(set1 < set2)#set1是否包含于set2,结果为True
    print(set1.issubset(set2))
    

    集合去重

    li = [1,2,3,44,2,43,2]
    set = set(li)
    print(set)#{1, 2, 3, 43, 44}
    #集合强制转换列表
    li = list(set)
    print(li)#[1, 2, 3, 43, 44]
    

    将set从可变数据类型转成不可变数据类型

    s = frozenset('marry')
    print(s,type(s))#frozenset({'y', 'm', 'r', 'a'}) <class 'frozenset'>
    #被冻住的s只可以遍历(同样是无序),因为是不可变
    for i in s:
        print(i)
    

    序列解包

    在实际开发中,序列解包是非常重要和常用的一个功能,可以使用非常简洁的形式完成复杂的功能,大幅度提高了代码的可读性。

    序列解包也可以用于列表和字典,但是对字典使用时,默认是对字典“键”进行操作,如果需要对“键:值”对进行操作,需要使用字典的items()方法明确指定。如果需要对字典的的“值”进行操作,需要使用字典的values()方法明确指定。

    序列解包的集合操作,简单示例如下:

     注意:在调用函数时,在实参前面加上一个星号(*)也可以进行序列解包,从而实现将序列中元素值依次传递给相同数量的形参。

  • 相关阅读:
    MySQL中的错误
    [Err] 1064
    表单元素input 、button都要放进form里面
    【电商15】floor tab选项卡
    css三大特性——继承性:继承哪些样式
    border影响盒子大小-解决办法:
    padding影响&不影响盒子实际大小的情况
    【电商14】recom
    单行的多余文字,用省略号显示
    放精灵图的小盒子:_______;放字体图标:_______
  • 原文地址:https://www.cnblogs.com/Cheryol/p/9703982.html
Copyright © 2011-2022 走看看