2021.3.10总结

3.10总结

01dict

  1. 增、 改

    字典[key] = 值 - 当key存在的时候就是修改指定key对应的值,当key不存在的时候添加键值对

    • 2.1 del 字典[key] - 删除字典中指定key对应的键值对
    • 2.2 字典.pop(key) - 取出字典中指定key对应的值
  2. 字典相关操作

    • 3.1 字典不支持+、* 和 比较大小,只支持比较是否相等的运算

    • 3.2 in 和 not in - 判断字典中是否存在指定的key

    • 3.3 dict 、len

      dict(数据) - 将数据转换成字典

      • a. 数据必须是序列
      • b. 序列中元素必须是小序列,而且小序列有且只有两个元素,第一个元素必须是不可变的
  3. 字典推导式

    {表达式1:表达式2 for 变量 in 序列}

    {表达式1:表达式2 for 变量 in 序列 if 条件语句}

    dict(表达式 for x in 序列) - 表达式必须是有且只有两个元素的序列,第一个元素必须是不可变的

  4. 字典相关方法

      1. 字典.clear( ) - 清空字典

      2. 字典.copy( ) - 复制字典产生一个一模一样的新字典

      3. (了解) dict.fromkeys(序列) - 创建一个字典,将序列中所有的元素作为字典key,值默认都是None

      4. values、keys、items

        字典.values( ) - 获取字典中所有的值; 返回的不是列表另是一种序列

        字典.keys( ) - 获取字典中所有的键; 返回的不是列表另是一种序列

        字典.items( ) - 获取字典中键值对; 返回的时候序列,序列中的元素是每个键值对对应的元组

      5. 字典.setdefault(key, value) - 在字典中添加键值对(不会在key存在的时候进行修改操作)

      6. 字典。update(序列) - 将序列中所有的元素作为键值对添加到字典中。序列必须是可以转换成字典的序列

        字典1.update(字典2) - 将字典2的键值对全部添加到字典1中

02set

  1. 什么是集合(set)

    集合是容器型数据类型;将{ }作为容器的标志,多个元素之间用逗号隔开:{元素1,元素2,元素3,…}

    集合是可变的;集合是无序的

    元素: 必须是不可变的数据;元素是唯一的

    • 空集合:{ }不是空集合,是字典
    • 集合是无序的
    • 集合的元素必须是不可变的类型的数据
    • 集合的元素是唯一的
    • 集合自带去重功能,但是只能去元素是不可变的序列的重
  2. 增删改查

      1. 查: 集合只能遍历

        集合.add(元素) - 在集合中添加指定元素

      2. 集合.add(元素) - 在集合中添加指定元素

        集合.update(元素) - 将序列中的元素全部添加到集合中

      3. 集合.remove(元素) - 删除指定元素,如果元素不存在就报错

        集合.discard(元素) - 删除指定元素,如果元素不存在不报错

      4. 改 - 不能直接修改某个元素,只能先删除再添加

  3. 数学集合运算:交集( & )、并集( | )、差集( - )、对称差集( ^ )、子集( >= )和真子集( > )

      1. 交集( & )

        集合1 & 集合2 - 获取两个集合公共的部分

      2. 并集( | )

      3. 差集( - )

        集合1 - 集合2 - 获取在集合1中但是不在集合2中的所有元素

      4. 对称差集( ^ )

        集合1 ^ 集合2 - 获取只在集合1和只在集合2中的所有的元素

      5. 子集和真子集

        集合 1 >= 集合2 - 判断集合2 是否是集合1的子集

        集合 1 < 集合2 - 判断集合2 是否是集合1的真子集

  4. 集合相关操作

      1. in 和 not in
      2. max 、 min、 sorted、sum、set、len

3.10作业

用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)

subject1 = {'小红','小白','小黑','小明'}
subject2 = {'小黑','小蓝','小白','小紫'}
subject3 = {'小白','小花','小蓝','小黑','小紫'}

a. 求选课学生总共有多少人

print(len(subject1 | subject2 | subject3))

b. 求只选了第一个学科的人的数量和对应的名字

s1= subject1 - subject2 - subject3
print(len(s1),s1)

c. 求只选了一门学科的学生的数量和对应的名字

s1 = subject1 - subject2 - subject3
s2 = subject2 - subject3 - subject1
s3 = subject3 - subject1 - subject2
new_sub1 = s1| s2 | s3
print(len(new_sub1),new_sub1)

d. 求只选了两门学科的学生的数量和对应的名字

s1 = subject1 & subject2 - subject3
s2 = subject1 & subject3 - subject2
s3 = subject2 & subject3 - subject1
new_sub2 = s1 | s2 | s3
print(len(new_sub2),new_sub2)

e. 求选了三门学生的学生的数量和对应的名字

new_sub3 = subject1 & subject2 & subject3
print(len(new_sub3),new_sub3)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值