07 元组&字典&集合

1.元组

1.1 元组的基本概念

  • 元组是用()表示的
  • 元组是一个不可变序列(希望数据不被改变的时候用元组)
  • 如果元组不是空元组,那么它里面至少有一个逗号
    07 元组&字典&集合
    07 元组&字典&集合

1.2 拆包

  • 元组的拆包
    07 元组&字典&集合
    07 元组&字典&集合
  • 字符串的拆包
    07 元组&字典&集合
    07 元组&字典&集合
  • 列表的拆包
    07 元组&字典&集合
    07 元组&字典&集合

2.字典

2.1 字典的基本概念

  • 字典属于⼀种新的数据结构称为映射(mapping)
    07 元组&字典&集合
    07 元组&字典&集合

  • 数据类型 {key:value} 这么一个key-value我们称它为一项

  • 当字典中的key有重复的时候,后面的会代替前面的

  • 字典的几种写法如图所示
    07 元组&字典&集合
    07 元组&字典&集合

  • 字典的作用和列表类似,都是⽤来存储对象的容器

  • 列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反

  • 每个字典中都可以有多个键值对,⽽每⼀个键值对我们称其为⼀项(item)

  • 双值子序列
    07 元组&字典&集合

2.2 字典的深拷贝和浅拷贝

  • copy() 方法用来对字典进行浅复制

  • 注意:潜复制只会复制字典本身,如果字典中还有个字典是不会进行复制的,deepcopy()会复制

  • 浅拷贝
    07 元组&字典&集合
    07 元组&字典&集合

  • 深拷贝
    07 元组&字典&集合

2.3 字典的增删改查

  • 基本操作

    • len() 获取字典中的键值对的个数

    • in 检验字典中是否包含指定的键

    • not in 检验字典中是否不包含指定的键
      07 元组&字典&集合07 元组&字典&集合

    • 可以根据键来获取字典当中的值,语法:dict[key]

    • get(key.default) 通过key获取value
      07 元组&字典&集合07 元组&字典&集合

  • 增加操作

    • 1、语法:dict[key] = value如果key值不存在,则向字典中添加key-value
      07 元组&字典&集合07 元组&字典&集合

    • 2、setdefault(key,default) 向字典中添加key=value
      如果这个key已经存在字典中,则返回value值,不会对字典有任何影响
      如果key不存在,则在字典中添加这个key,并设置value
      07 元组&字典&集合07 元组&字典&集合

    • 3、update() 将字典中的key-value添加到当前字典中
      07 元组&字典&集合07 元组&字典&集合

  • 删除操作

    • 1、del删除字典中的Key-value
      07 元组&字典&集合07 元组&字典&集合

    • 2、popitem() 随机删除一个键值对,一般默认删除最后一个
      将删除之后的键值对作为返回值返回,返回的是一个元组,第一个元素是key,第二个元素是value
      07 元组&字典&集合07 元组&字典&集合

    • pop(key,default) 根据key来删除key-value
      07 元组&字典&集合07 元组&字典&集合

    • clear() 清空字典
      07 元组&字典&集合07 元组&字典&集合

2.4 字典的遍历

  • dict.keys() 遍历字典,返回的是一个序列,保存的是字典中的所有键
    07 元组&字典&集合07 元组&字典&集合

  • dict.values() 返回的是一个序列,保存的是字典中所有的值
    07 元组&字典&集合07 元组&字典&集合

  • dict.items() 返回的是字典中所有的项,返回的是一个序列,这个序列中包含双值子序列
    07 元组&字典&集合07 元组&字典&集合

3.集合

3.1 集合的基本概念

  • 集合 : set {}
  • 集合和列表的不同点:
    • 1、集合中能存储不可变对象
 set1 = {(2,3),'hsjfh',None,True,[3,5,6]}
 print(set1)
  • 2、集合中存储的对象是无序的 没有索引
set1 = {4,5,6,2,10}
print(set1)
  • 3、集合不能出现重复元素 去重set()
set1 = {(2,3),'hsjfh',None,True,1,2}
print(set1)
  • 创建空集合
set1 = set()
print(set1,type(set1))
  • 去重
list1 = [1,3,5,3,5,6,3,4,3,6,4]
s = set(list1)
print(s)
  • 字典的去重,将字典转换为集合的时候,只会包含字典中的key
dict1 = {1:'1',2:'2',3:'4',1:'5'}
s = set(dict1)
print(s)

结果如图所示:
07 元组&字典&集合07 元组&字典&集合

3.2 集合的使用

  • in
  • not in
  • len()
  • set.add() 向集合中添加元素
set1 = set()
set1.add(4)
set1.add(5)
set1.add(7)
print(set1)
  • set.update() 将一个集合中的元素添加到另一个集合中
s1 = set('hello')
s2 = set('python')
s1.update(s2)
print(s1)
  • set.pop() 删除
set1 = {'a','b',1,3}
r = set1.pop()
print(r)
print(set1)
  • set.remove()
set1 = {'a','b',1,3}
set1.remove('a')
print(set1)
  • set.clear() 清空
set1 = {'a','b',1,3}
set1.clear()
print(set1)

07 元组&字典&集合07 元组&字典&集合

3.3 集合的运算

  • &交集运算
s1 = {1,2,3,4}
s2 = {3,2,5,6}
r = s1&s2
print(r)
  • | 并集运算
s1 = {1,2,3,4}
s2 = {3,2,5,6}
r = s1 | s2
print(r)
  • 差集运算
s1 = {1,2,3,4}
s2 = {3,2,5,6}
r = s1-s2
r1 = s2-s1
print(r)
print(r1)
  • ^ 亦或集 就是集合里面不相交的部分
s1 = {1,2,3,4}
s2 = {3,2,5,6}
r = s1 ^ s2
print(r)
  • <= 检查一个集合是否是另一个集合子集
s1 = {1,2,3,4,5,6}
s2 = {3,2,5,6}
print(s1 <= s2)
  • < 检查一个集合是否是另一个集合的真子集
  • >= 检查一个集合是否是另一个集合的超集
  • < 检查一个集合是否是另一个集合的真超集
上一篇:【小白从小学Python、C、Java】【计算机等级考试二级-必会题】【Python中集合的discard()方法】


下一篇:Python中的集合set()及其常用操作函数