zoukankan      html  css  js  c++  java
  • python基础(三)

    # set数据类型是无序,不重复的,且里面的值必须是可hash的,不能通过索引来获取set集合中的元素
    
    set1 = {'1','2','ab'}
    set1.add('cc')
    print(set1)
    # result:{'1', 'cc', '2', 'ab'} 向set集合中添加元素
    
    set2 = {'1','2','ab'}
    set2.update(['a','b','c'])
    print(set2)
    # result:{'2', '1', 'b', 'c', 'ab', 'a'} 迭代更新
    
    set3 = {'1','2','ab'}
    item = set3.pop()
    print(item)
    # 随机删除一个元素,clear清空
    
    set4 = {'1','2','ab'}
    
    item1 = set4.remove('ab')
    
    print(set4,item1)
    
    # result:{'2', '1'} None 指定删除一处元素,但返回None,set集合没法直接修改,只能通过remove删除再通过add添加
    
    # set常用操作
    
    s1 = {'a','b','c','d'}
    s2 = {'d','e','f','g'}
    # 交集操作
    print(s1 & s2)
    print(s1.intersection(s2))
    # result:{'d'}
    # 并集操作
    print(s1 | s2)
    print(s1.union(s2))
    # result:{'a', 'f', 'e', 'g', 'c', 'b', 'd'}
    
    # 差集操作,得到第一个中单独存在的
    print(s1 - s2)
    print(s1.difference(s2))
    # result:{'c', 'b', 'a'}
    
    # 反交集两个集合中单独存在的数据
    print(s1 ^ s2)
    print(s1.symmetric_difference(s2))
    
    
    # 子集操作
    print(s1 < s2)
    print(s1.issubset(s2))
    # result:False 判断s1是否为s2的子集
    
    # 超集操作
    print(s1 > s2)
    print(s1.issuperset(s2))
    # result:False 判断s1是否为s2的超集
    
    # set集合本身是可以发生改变的,我们可以用frozenset冻结
    
    # 深浅拷贝
    
    lst1 = ['a','b','c','d']
    lst2 = lst1.copy()
    
    print(lst1 is lst2)
    # False,重新拷贝了一份数据生成新的内存地址,浅拷贝只会拷贝第一层数据
    
    import copy
    
    lst1 = ['a','b','c','d',['a','b','c','d']]
    lst2 = copy.deepcopy(lst1)
    print(lst1[4] is lst2[4])
    # False,深层拷贝内部元素完全进行拷贝复制
  • 相关阅读:
    SAP BW维护项目中的常见问题 沧海
    从印度英语想到creole 沧海
    侃State模式
    住在“天堂”的代价一个工薪阶层买房的感受
    家庭财务总管软件设计
    侃观察者模式(Observer)
    软件设计起步:画UML类图
    一个提醒软件---好朋友
    学习设计模式的一些心得
    一次偶然结对编程的感受
  • 原文地址:https://www.cnblogs.com/tengx/p/11699191.html
Copyright © 2011-2022 走看看