• 【Python编程】六、字典与集合


    CSDN21天学习挑战赛
    在这里插入图片描述

    欢迎加入【Linux C/C++/Python社区】一起探讨和分享Linux C/C++/Python/Shell编程、机器人技术、机器学习、机器视觉、嵌入式AI相关领域的知识和技术。


    Python数据类型之字典与集合


    字典 dict - 键值对

    • key不能重复;

    • { } 内部是键值对,用逗号,隔开

    info = {
    ​     “k1”:”value1”,
    ​     “k2”:value2
    }  
    
    • 1
    • 2
    • 3
    • 4
    • 字典的value可以是任何值任何类型,甚至是嵌套字典;

    • 字典的key,字典是按照哈希表的方式保存的,unhashable类型不能作为key,list/dict类型不能作为key

    • 字典是无序的,每次打印顺序都不一样

    • 字典中索引就是key,可以通过key取value,value = dict[key],同样可以嵌套索引

    • 因为字典是无序的,所以不能通过切片取值

    • 字典支持del删除,del info[key] 通过key删除键值对

    • for循环迭代对字典取值的时候,默认取key

    dict.keys() #取key
    
    dict.values() #取value
    
    k,v in dict.items() #取键值对
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • clear() 清空

    • copy() 浅拷贝

    • fromkeys() 生成字典,第一个参数为key(可迭代),第二个参数为value,staticmethod

    • get() 根据key取值,取不到返回None,或返回设定值

    • items() keys() values()

    • pop() 根据key删除一个键值对,并返回value,如果key不存在可以返回设定值dic.pop(key, arg) – key不存在则返回arg

    • popitem() 字典中随机删除一个键值对并返回

    • setdefault() 设置,dic.setdefault(key, value),如果key已经存在,不设置且返回字典中的key所对应的value,如果不存在,则用参数设置一个键值对key:value,并返回value

    • update() 根据key更新value,有则覆盖,无则设置

    • 在方法中,如果看到参数是 **kwargs 表示可以传入字典 **{k:v}

    集合 set

    由不同元素组成的集合,集合是一组无序排列的可hash的值(只能存放不可变类型),可以作为字典的key

    定义:s = {1, 2, 4, 5} - 区别字典,字典元素是键值对

    • 不同元素组成 – 会自动去重

    • 集合是无序的

    • 集合元素必须是不可变类型的元素

    • set() 方法定义集合,通过for循环迭代

    • add() 增加一个元素

    • clear() 清空

    • pop() 随机删除一个元素,并返回被删除的元素

    • remove() 删除指定元素,删除不存在报错

    • discard() 删除指定元素,元素不存在不报错

    • copy()

    • 集合的关系运算

    & 交集 s1.intersection(s2)
    | 并集 s1.union(s2)|
    - 差集 s1.difference(s2)

    • symmetric_difference() 交叉补集,s1 | s2 – (s1 & s2)

      s1. symmetric_difference(s2) → s1 ^ s2

    • difference_update()
      s1.difference_update(s2)相当于s1=s1-s2

    • intersection _update()

    • symmetric_difference_update()

    • isdisjoint() 如果没有交集返回True,否则False

    • issubset() s1是否是s2的子集,是返回True否则False

    • issuperset() s1是否是s2的父集

    • update() 更新多个值,add()只能更新一个值

    • set是可变类型,通过frozenset()可以定义不可变类型集合

    • 如何把一个列表去重? li = [ … ]
      list(set(li))


    在这里插入图片描述
    在这里插入图片描述


  • 相关阅读:
    javaH5醉美南湾湖网站设计计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
    UnityVR一体机报错:GL_OUT_OF_MEMORY,[EGL] Unable to acquire context
    【SQL刷题】Day11----SQL通配符专项练习
    Python数据分析实战-dataframe分组提取每一组的首条记录(附源码和实现效果)
    实时数仓:网易严选基于Flink的实时数仓实践
    第四十篇 Vue封装swiper组件(v-swiper指令) 3.0
    常用的机器学习模型算法
    【PAT乙级】一百一十道真题刷后大汇总——C/C++
    后台默默付出的劳动者,四大组件之服务(Service)
    浅聊一下 C#程序的 内存映射文件 玩法
  • 原文地址:https://blog.csdn.net/qq_43471489/article/details/126370939