• 集合


    集合 -- set

    集合是没用值得字典,无序,可变的,天然去重

    se = {1,2,3,4,5,1,1,3,4,2,45,3,2}
    print(se)
    
    #面试题
    lst = [1,2,3,41,12,1,1,12,2]
    print(list(set(lst)))
    
    for i in {1,2,3,4}:
        print(i)
    

    增:

    s = {"刘嘉玲", '关之琳', "王祖贤"}
    
    s.add("郑裕玲") # 重复的内容不会被添加到set集合中
    print(s)
    
    s = {"刘嘉玲", '关之琳', "王祖贤"}
    s.update("麻花藤") # 迭代更新
    print(s)
    s.update(["张曼⽟", "李若彤","李若彤"])
    print(s)
    

    删:

    s = {"刘嘉玲", '关之琳', "王祖贤","张曼⽟", "李若彤"}
    item = s.pop() # 随机弹出⼀个.
    print(s)
    print(item)
    s.remove("关之琳") # 直接删除元素
    # s.remove("⻢⻁疼") # 不存在这个元素. 删除会报错
    print(s)
    s.clear() # 清空set集合.需要注意的是set集合如果是空的. 打印出来是set() 因为要和
    dict区分的.
    print(s) # set()
    

    查:

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

    常用操作:

    s1 = {"刘能", "赵四", "⽪⻓⼭"}
    s2 = {"刘科⻓", "冯乡⻓", "⽪⻓⼭"}
    # 交集
    # 两个集合中的共有元素
    print(s1 & s2) # {'⽪⻓⼭'}
    print(s1.intersection(s2)) # {'⽪⻓⼭'}
    # 并集
    print(s1 | s2) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
    print(s1.union(s2)) # {'刘科⻓', '冯乡⻓', '赵四', '⽪⻓⼭', '刘能'}
    # 差集
    print(s1 - s2) # {'赵四', '刘能'} 得到第⼀个中单独存在的
    print(s1.difference(s2)) # {'赵四', '刘能'}
    # 反交集
    print(s1 ^ s2) # 两个集合中单独存在的数据 {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
    print(s1.symmetric_difference(s2)) # {'冯乡⻓', '刘能', '刘科⻓', '赵四'}
    s1 = {"刘能", "赵四"}
    s2 = {"刘能", "赵四", "⽪⻓⼭"}
    # ⼦集
    print(s1 < s2) # set1是set2的⼦集吗? True
    print(s1.issubset(s2))
    # 超集
    print(s1 > s2) # set1是set2的超集吗? False
    print(s1.issuperset(s2))
    

    使⽤frozenset来保存数据. frozenset是不可变的. 也就是⼀个可哈希的数据类型

    s = frozenset(["赵本⼭","刘能","⽪⻓⼭","⻓跪"])
    dic = {s:'123'}		# 可以正常使⽤了print(dic)
    
  • 相关阅读:
    Android源码学习之模板方法模式应用
    CSS3特性修改(自定义)浏览器默认滚动条
    【JQ+锚标记实现点击页面回到顶部】
    网页响应式媒体查询
    CSS3新特性,绘制常见图形
    【CSS3动画】transform对文字及图片的旋转、缩放、倾斜和移动
    MySQL索引详解
    Eclipse快捷键大全(转载)
    深入Java集合学习系列:HashMap的实现原理
    HTML5 的Drawing Path
  • 原文地址:https://www.cnblogs.com/fengqiang626/p/11169828.html
Copyright © 2020-2023  润新知