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

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

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


Python数据类型之字典与集合


字典 dict - 键值对

  • key不能重复;

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

info = {
​     “k1”:”value1”,
​     “k2”:value2
}  
  • 字典的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() #取键值对
  • 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))


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


posted @ 2022-08-16 18:36  Mindtechnist  阅读(19)  评论(0编辑  收藏  举报  来源