• Python中八大基本数据类型之 集合


    可变数据类型与不可变数据类型:

    1.可变:列表,字典

    2.不可变:字符串,数字,元组

     

    访问顺序:

    1.顺序访问:字符串,列表,元组

    2.映射:字典 

     

    集合

    由不同元素组成的集合,集合中是一组无序排列的可hash的值,可以作为字典的key

    1.不同元素组成

    2.无序

    3.集合中元素必须是不可变类型,如:字符串,数字,元组

    集合的定义:s={1,2,5,6,7}

     set()方法定义:相当于for循环,()里为可迭代类型

     

    集合基本方法

    添加:add()

    清空:clear()

    拷贝:copy()

    删除:pop(),指定删除:remove(value)删除元素不存在时会报错,discard(value)删除元素不存在时不会报错

    求交、差、并集:

    python_li=['lcg','szw','zjw','lcg']
    linux_li=['lcg','szw']
    python_and_linux=[]
    #for循环求交集
    for i in python_li:
        if  i in linux_li:
            python_and_linux.append(i)
    print("for循环求交集:",python_and_linux)
    
    #集合求交集
    p_s=set(python_li)
    l_s=set(linux_li)
    print(p_s, l_s)
    print("集合求交集:",p_s.intersection(l_s))
    print("集合求交集:",p_s&l_s)
    
    #求并集
    print("集合求并集:",p_s.union(l_s))
    print("集合求并集:",p_s|l_s)
    
    #求差集,我中有,你中没有的部分
    print("集合求差集:",p_s-l_s)
    print("集合求差集:",l_s-p_s)
    print("集合求差集:",p_s.difference(l_s))
    
    #求交叉补集,两个集合求并集后减去交叉的部分
    print("集合求交叉补集:",p_s.symmetric_difference(l_s))
    print("集合求交叉补集:",p_s^l_s)

    运行结果:

     

    python_li=['lcg','szw','zjw','lcg','asdr','fdf']
    linux_li=['lcg','szw','sffr','roy']
    p_s=set(python_li)
    l_s=set(linux_li)
    print("p_s=",p_s)
    print("l_s=",l_s)
    
    #求差集后将值更新为p_s
    p_s.difference_update(l_s)
    print("p_s=",p_s)
    
    #判断交集,如果没有交集返回True
    b=p_s.isdisjoint(l_s)
    print("判断交集:",b)
    
    #判断是否是子集
    print("判断是否是子集:",p_s.issubset(l_s))
    
    #判断是否是父集
    print("判断是否是父集:",p_s.issuperset(l_s))
    
    #更新,覆盖,可更新多个值,add只能更新一个值
    p_s.update('a')
    print("p_s=",p_s)

    运行结果:

     

    补充:

    集合是可变类型,能增加,能删除,但不可修改,

    另一种集合定义方式:

    s=frozenset('hello'),此种方式定义的集合为不可变类型

    简单去重复操作:

     

     

     

  • 相关阅读:
    [转]狼的故事8:生存就是坚持
    [转]狼的故事7:单枪匹马的代价
    如何在GridView的Footer内显示总计?
    javascript中如何正确将日期(Date)字符串转换为日期(Date)对象?
    无限级分类(非递归算法/存储过程版/GUID主键)完整数据库示例_(1)表结构
    [转]狼的故事12:王者的风范
    [转]狼的故事2:光线背后的嚎叫
    vs.net2008正式版发布并提供下载(英文版)
    [转]狼的故事11:以牙还牙
    [转]狼的故事3:百分之百的死亡
  • 原文地址:https://www.cnblogs.com/String-song/p/12937035.html
Copyright © 2020-2023  润新知