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

     集合的特性:无序性,唯一性,可嵌套性

    1 #创建集合方式
    2 s1={11,22}# 直接创建
    3 s2=set()#创建空集合
    4 s3=set([111,222,333])#转换为集合
    1 #集合的方法
    2 s1={11,22,33}
    3 s2={22,33,44}
    4 print(s1.difference(s2))#s1中存在s2中不存在
    #输出   {11}
    1 s1={11,22,33}
    2 s2={22,33,44}
    3 s3=s1.symmetric_difference(s2)
    4 print(s3)#将s1与s2中不同的放一起组成新集合
    5 #显示{11, 44}
    s1={11,22,33}
    s2={22,33,44}
    #update方法,s1中存在s2中不存在的值赋给s1
    s1.difference_update(s2)#覆盖s1
    print(s1)
    #显示:{11}
    s1={11,22,33}
    s2={22,33,44}
    # #删除元素
    s2.discard(1111)#需要加参数,没有元素不报错
    s1.remove(1111)#需要加参数,没有元素报错
    res = s1.pop()#随机移除元素,不加参数,接受返回值(删除的元素
    s1={11,22,33}
    s2={22,33,44}
    #求交集
    s4=s1.intersection(s2)#求交集赋值给s4
    s1.intersection_update(s2)#求交集覆盖s1
    print(s4)
    print(s1)
    #显示{33, 22} {33, 22}
     1 s1={11,22,33}
     2 s2={22,33,44}
     3 s1.isdisjoint(s2)#判断s1是否包含s2 返回True or False
     4 
     5 #联合,并集
     6 s5=s1.union(s2)
     7 #显示{33, 22, 11, 44}
     8 
     9 #给集合添加一个元素
    10 s1.add(111)#增加一个元素
    11 print(s1)
    12 #显示{33, 11, 22, 111}
    13 
    14 #给集合添加一组元素
    15 li=[111,222,333]
    16 s1.update(li)#添加一组元素,参数为可迭代的对象
    17 print(s1)
    18 #显示{33, 11, 333, 111, 22, 222}
     1 #集合的综合使用,根据new_dict,更新old_dict
     2 old_dict={
     3     '#1':8,
     4     '#2':4,
     5     '#4':2,
     6 }
     7 new_dict={
     8     '#1':4,
     9     '#2':4,
    10     '#3':2,
    11 }
    12 #将old_dict的key放入一个集合
    13 s1=set(old_dict.keys())
    14 #将new_dict的key放入一个集合
    15 s2=set(new_dict.keys())
    16 #找出old中存在,new中不存在的赋给del_old(需要删除的key)
    17 del_old=s1.difference(s2)
    18 print(del_old)
    19 #找出old中不存在,new中存在的值赋给add_old
    20 add_old=s2.difference(s1)
    21 print(add_old)
    22 
    23 #找出两个字典中相同的keys,则是需要更新
    24 update_set=s1.intersection(s2)
    25 
    26 #将要删除的集合元素转为列表
    27 del_old=list(del_old)
    28 
    29 #删除字典中的元素
    30 del old_dict[str(del_old[0])]
    31 
    32 #将需要添加的集合转为列表
    33 add_old=list(add_old)
    34 
    35 #添加新元素到old_dict中
    36 old_dict[str(add_old[0])]=new_dict[str(add_old[0])]
    37 
    38 #轮询更新相同key不同vlaues的元素
    39 for i in update_set:
    40     old_dict[i]=new_dict[i]
    41 
    42 print(old_dict,new_dict)
    43 
    44 
    45 #显示
    46 {'#4'}
    47 {'#3'}
    48 {'#1': 4, '#3': 2, '#2': 4} {'#1': 4, '#3': 2, '#2': 4}
  • 相关阅读:
    backbone.js初体验--构建简单分页应用时踩到的坑
    使用r.js打包js文件
    javascript原型式继承
    javascript浮点数运算修正
    javascript对象的浅复制与深复制
    javascript类式继承
    初识requirejs(二)
    标准版SCADA 上线了~~ 三菱 Fanuc 广数 华中 西门子 HAAS等等 可以做到一套程序通用,采集所有CNC PLC
    KepServerEX读写三菱PLC,车间现场测试记录,带你了解【数据采集的困境】的前世与今生
    Mitsubishi (三菱) Fanuc(发那科),CNC,网口数据采集,NC程序下发(其它品牌CNC,哈斯 马扎克 兄弟等,正在开发中)
  • 原文地址:https://www.cnblogs.com/liguangxu/p/5518211.html
Copyright © 2011-2022 走看看