zoukankan      html  css  js  c++  java
  • PythonSet

    Set 是一个无序的不可重复的集合

    1、创建

      方式一:se={元素一,元素二....}  这种方式{}中必须有元素 否则默认的类型为dict字典类型 不是Set集合

      方式二:se=set(可迭代的数据)不传入数据默认创建一个空的集合

    2、转换

      

    #字符串转换
    s="aabcnd"
    se=set(s)
    print(se)
    # list 数据转换
    li=["aa","bb","aa",123]
    se1=set(li)
    print(se1)
    #元组转换
    tu=("ab",123,"bc","ab")
    se2=set(tu)
    print(se2)
    #字典转换
    dic={"k1":123,"k2":123,"k3":"abc"}
    se3=set(dic)
    print(se3)
    se4=set(dic.values())
    print(se4)
    se5=set(dic.items())
    print(se5)
    for s in se5:
        print(type(s))

    结果:
      

    {'d', 'c', 'b', 'n', 'a'}
    {123, 'bb', 'aa'}
    {'bc', 123, 'ab'}
    {'k2', 'k1', 'k3'}
    {123, 'abc'}
    {('k2', 123), ('k1', 123), ('k3', 'abc')}
    <class 'tuple'>
    <class 'tuple'>
    <class 'tuple'>

    3、add,diffrence diffrence_update方法的使用
      

    #add
    se1={}
    print(type(se1))#这种方式创建默认类型是dict
    se=set()
    se.add(11)
    se2={22,44,11}
    se3=se2.difference(se)# 找出se2中存在se中不存的元素的集合
    print(se)
    print(se3)
    se2.difference_update(se)# 删除 se2中与se中重复的元素
    print(se2)

    结果:
      

    <class 'dict'>
    {11}
    {44, 22}
    {44, 22}

    4、其他方法的使用
      

    #clear
    se={"aa","bb",123,344}
    print(se)
    se.clear()
    print(se)
    
    #dicard 移除集合中的指定元素 不存在不报错 remove 在移除元素不存在的时候报错
    se1={"11",23,34}
    se2={"aa",12,"bc"}
    se1.discard("11")
    print(se1)
    
    
    #intersection 获取 A和B 中都存在的元素集合
    section={11,22,33,44}
    section1={11,33,"aa","bb"}
    section2={11,22,33,44,55}
    ret=section.intersection(section1)
    print(ret)
    
    # isdisjoint 判断两个集合中是否有相同的元素 有交集返回false 没有交集返回true
    fl=section.isdisjoint(section1)
    print(fl)
    
    # issubset 判断A 是否是B的子集 是返回true 反之返回false
    fl1=section.issubset(section1)
    fl2=section.issubset(section2)
    print(fl1)
    print(fl2)
    # issuperset 判断A是否是B的父集合 即 A中是佛包含了B中所有的元素  是返回true 反之返回false
    fl3=section.issuperset(section1)
    fl4=section2.issuperset(section)
    print(fl3)
    print(fl4)
    #pop 移除一个元素 移除并返回要移除的元素值
    print(section)
    p=section.pop()
    print(p)
    print(section)
    p1=section.pop()
    print(p1)
    
    #symmetric_difference 对称交集  返回对称交集集合 不改变原有集合
    sym_set=section2.symmetric_difference(section1)
    print(sym_set)
    print(section2)
    #symmetric_difference 对称交集 并更新原有的调用集合
    print(section1)
    section1.symmetric_difference_update(section2)
    print(section1)
    #union 取并集  原集合不变 返回新的集合
    print(section1)
    print(section2)
    set_union=section1.union(section2)
    print(set_union)
    print(section1)
    print(section2)
    # update更新  改变要更新集合的元素
    print(section)
    section.update(section2)
    print(section2)
    print(section)

    运行结果:
      

    C:\Python3.5\python.exe E:/PythonProject/pyset/use_set.py
    {344, 'bb', 123, 'aa'}
    set()
    {34, 23}
    {33, 11}
    False
    False
    True
    False
    True
    {33, 11, 44, 22}
    33
    {11, 44, 22}
    11
    {'bb', 44, 22, 55, 'aa'}
    {33, 11, 44, 22, 55}
    {33, 'bb', 11, 'aa'}
    {'bb', 44, 22, 55, 'aa'}
    {'bb', 44, 22, 55, 'aa'}
    {33, 11, 44, 22, 55}
    {33, 'bb', 11, 44, 22, 55, 'aa'}
    {'bb', 44, 22, 55, 'aa'}
    {33, 11, 44, 22, 55}
    {44, 22}
    {33, 11, 44, 22, 55}
    {33, 22, 55, 11, 44}
  • 相关阅读:
    iOS 解决导航栏左右 BarButtonItem偏移位置的问题
    iOS UIButton 图片文字上下垂直布局 解决方案
    Android开发实战(十八):Android Studio 优秀插件:GsonFormat
    Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow
    AsyncTask.cancel()的结束问题
    Android项目实战(十五):自定义不可滑动的ListView和GridView
    RecyclerView解析--onViewDetachedFromWindow()/onViewAttachedToWindow()
    RecyclerView添加头部和底部视图的实现
    浅谈TabLayout(ViewPager+Tab联动)
    Android项目实战(十四):TextView显示html样式的文字
  • 原文地址:https://www.cnblogs.com/ruijing/p/7521470.html
Copyright © 2011-2022 走看看