字典和集合的区别以及常用方法

字典:

  由key和value组成,字典是有序的(python3.7中)。

  字典是可变的

  字典支持索引操作。

  字典对应的哈希表中存储了哈希值、key和value

  字典的key不能重复

集合:

  集合没有key和value的配对,是无序的,且元素值唯一。

  集合是可变的

  集合不支持索引/切片操作。

  集合对应的哈希表中仅存储了哈希值

  集合的值不能重复

  

创建&初始化

dic = {'key'='value'}

dic1=dict()

  1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住

  2)   键必须不可变,所以可以用数字,字符串或元组充当。不可用可变元素(列表、字典、集合)

set ={1,2}

set1 =set()

  1)集合中只能添加一些不可变类型:数字,字符串或元组

  2)集合本身可以修改,但是集合中的已存在的元素不能修改(因为已存在的元素是不可变类型)

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

字典和列表中无法直接转换

字典和集合的区别以及常用方法

 

 字典和集合的区别以及常用方法

 

常用方法

 可以通过dir查看所有内置方法

字典和集合的区别以及常用方法

 

字典常用方法

  • dict.copy() 返回字典的浅拷贝。复制后初始内容相同,id不同,后续原字典变化不会影响复制出来的字典
  • dict.get(key,default=None) 返回字典key对应的值,如果找不到对应的key,则返回默认值
  • dict.has_key(key) 如果key在字典中,返回true 否则返回False
  • dict.items() 以列表返回字典对应的(key,value)
  • dict.keys() 以列表返回字典所有的key
  • dict.values() 以列表返回字典所以的value
  • dict.setdefault(key,default=None)返回字典key对应的值,如果找不到,则在字典中增加key:default的键值对
  • dict.update(dict1)把dict1的内容更新到dict内。只变更原有的dict的内容,不会生成xin的id。当key相同时,dict的value值会覆盖dict的值
  • dict.pop(key)删除对应key的键值对,并返回删除的value值。如果键值不存在,会报错
  • dict.popitem()删除字典中最后一个键值对
  • del dict[key] 删除对应key的键值对
  • del dict 删除字典
  • dict[key]=value key存在则更新value值,key不存在,则新增键值对

集合常用方法

  • s.add(value)  添加元素
  • s.update() 修改当前集合,可以添加新的元素或集合到当前集合中
  • s.discard(vallue)删除元素,当元素不存在时,不会报错
  • s.remove(value)删除元素,当元素不存在时,会报错
  • s.pop()随机删除一个元素
  • s.copy() 浅拷贝集合
  • s.difference(s1) 返回集合的差集,即返回的集合元素包含在第一个集合s中,但不包含在方法的参数s1中。会返回一个新集合
  • s.difference_update(s1) s1中移除两个集合都存在的元素,直接在原来的集合中移除元素,没有返回值
  • s.symmetric_difference(s1) 会移除两个集合中都存在的元素,会返回一个新的集合
  • s.symmetric_difference_update(s1) 移除当前集合s与集合s1相同的元素,并将s1中不同的元素插入到当前集合s中
  • s.intersection(s1,s2,s3...)用于返回两个或更多集合中都包含的元素,即交集。会返回一个新的集合
  • s.intersection_update(s1s2,s3...) 用于获取两个或更多集合中都重叠的元素,即计算交集。在原始的集合上移除不重叠的元素。
  • s.isdisjion(s1) 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
  • s.issubset(s1)判断集合s的所有元素是否都包含在指定集合s1中,如果是则返回 True,否则返回 False。
  • s.issuperset(s1)判断指定集合s1的所有元素是否都包含在原始的集合s中,如果是则返回 True,否则返回 False。

参考资料:

https://www.runoob.com/python3/python3-set.html

上一篇:数据结构c+python代码6:哈夫曼树构造及编码


下一篇:oracle数据库备份