VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > 简明python教程 >
  • python基础(9):基本数据类型四(set集合)、基础数据类型补充、深浅拷贝(3)

  • print(s)
  • print(item)
  • s.remove("关之琳") # 直接删除元素
  • # s.remove("⻢⻁疼") # 不存在这个元素. 删除会报错
  • print(s)
  • s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和dict区分的.
  • print(s) # set()
  • 2.2.3 修改

    
    	
    1. # set集合中的数据没有索引. 也没有办法去定位⼀个元素. 所以没有办法进⾏直接修改.
    2. # 我们可以采⽤先删除后添加的⽅式来完成修改操作
    3. s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟", "李若彤"}
    4. # 把刘嘉玲改成赵本⼭
    5. s.remove("刘嘉玲")
    6. s.add("赵本⼭")
    7. print(s)

    2.2.4 查询

    
    	
    1. # set是⼀个可迭代对象. 所以可以进⾏for循环
    2. for el in s:
    3.   print(el)

    2.2.5 常用操作

    
    	
    1. s1 = {"刘能", "赵四", "⽪⻓⼭"}
    2. s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
    3. # 交集
    4. # 两个集合中的共有元素
    5. print(s1 & s2) # {'⽪⻓⼭'}
    6. print(s1.intersection(s2)) # {'⽪⻓⼭'}
    7. # 并集
    8. print(s1 | s2) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
    9. print(s1.union(s2)) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
    10. # 差集
    11. print(s1 - s2) # {'赵四', '刘能'} 得到第⼀个中单独存在的
    12. print(s1.difference(s2)) # {'赵四', '刘能'}
    13. # 反交集
    14. print(s1 ^ s2) # 两个集合中单独存在的数据 {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
    15. print(s1.symmetric_difference(s2)) # {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
    16. s1 = {"刘能", "赵四"}
    17. s2 = {"刘能", "赵四", "⽪⻓⼭"}
    18. # ⼦集
    19. print(s1 < s2) # set1是set2的⼦集吗? True
    20. print(s1.issubset(s2))
    21. # 超集
    22. print(s1 > s2) # set1是set2的超集吗? False
    23. print(s1.issuperset(s2))
    set集合本⾝是可以发⽣改变的,是不可hash的。我们可以使⽤frozenset来保存数据,
    frozenset是不可变的,也就是⼀个可哈希的数据类型
    
    	
    1. s = frozenset(["赵本⼭", "刘能", "⽪⻓⼭", "⻓跪"])
    2. dic = {s:'123'} # 可以正常使⽤了
    3. print(dic)
    这个不是很常⽤,了解⼀下就可以了。
    回到顶部(go to top)

    3. 深浅拷贝

    
    	
    1. lst1 = ["⾦⽑狮王", "紫衫⻰王", "⽩眉鹰王", "⻘翼蝠王"]
    2. lst2 = lst1
    3. print(lst1)
    4. print(lst2)
    5. lst1.append("杨逍")
    6. print(lst1)
    7. print(lst2)
    8. 结果:
    9. ['⾦⽑狮王', '紫衫⻰王', '⽩眉鹰王', '
    
    相关教程