栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python第一阶段学习总结

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python第一阶段学习总结

【第8天】Python第一阶段学习总结

2021/09/24

一. 字典相关操作和方法

  1. 字典不支持+、*、>、<、<=、>=

  2. 字典支持:==、!=

print({'a': 10, 'b': 20} == {'b': 20, 'a': 10})
  1. in 和 not in

键 in 字典 - 判断字典中是否存在指定的键

d1 = {'a': 10, 'b': 20, 'c': 30}print(30 in d1)     # Falseprint('b' in d1)    # True
  1. dict

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

  3. 数据的要求:

    • 数据本身是一个序列
    • 序列中的元素必须是长度为2的小序列
    • x小序列的第一个元素必须是不可变的
result = dict([(1, 2), 'ab', ['b', 100]])print(result)    # {1: 2, 'a': 'b', 'b': 100}

注意:将字典转换成列表或者元组的时候,将字典的键作为列表、元组中元素

d1 = {'a': 10, 'b': 20, 'c': 30}print(list(d1))    # ['a', 'b', 'c']
t1 = ([10, 20], 'ab', (1, 2))print(dict(t1))print(list(dict(t1)))
  1. 相关方法

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

      d1.clear()print(d1)
    2. 字典.copy() -

    3. 字典.items() - 将字典中的元素转换成元组,返回一个新的序列

      {键1:值1,键2:值2} -> [(键1,值1), (键2, 值2)]

      stu1 = {'name': '小明', 'gender': '男', 'age': 18}result = stu1.items()print(result)   # dict_items([('name', '小明'), ('gender', '男'), ('age', 18)])print(list(result))  # [('name', '小明'), ('gender', '男'), ('age', 18)]
      # 练习1:使用列表推导式,将一个字典的值全部乘以10d2 = {'a': 2, 'b': 34, 'c': 21}# {'a': 20, 'b': 340, 'c': 210}# 字典推导式: {键值对 for 变量 in 序列}d3 = {x: d2[x]*10 for x in d2}print(d3)d3 = {key: value*10 for key, value in d2.items()}print(d3)d3 = dict([(x, y*10) for x, y in d2.items()])print(d3)
      # 练习2:使用推导式,交换字典的键和值d2 = {'a': 2, 'b': 34, 'c': 21}d3 = {value: key for key, value in d2.items()}print(d3)
      1. 字典.keys() - 获取字典所有的键,返回一个新的序列

      2. 字典.values() - 获取字典所有的值,返回一个新的序列

      print(d2.values())
      1. 字典.setdefault(键,值) - 在字典中添加一个键值对(如果字典中已经存在这个键值对,不会执行修改操作)
      # 字典[键] = 值d1 = {'a': 10}d1['b'] = 100print(d1)d1.setdefault('c', 200)print(d1)
      1. 字典.update(序列) - 将序列中的元素全部添加到字典中
      # 序列 - 是字典或者是能转换成字典的序列d1 = {'a': 10, 'b':20}d2 = {'name': '小明', 'age': 18, 'a': 200}d1.update(d2)print(d1)d1.update(['mn', (1, 2)])print(d1)

二. 集合

1. 什么是集合

  • 集合是容器型数据类型(序列),将{}作为容器的标志里面多个元素用逗号隔开:{元素1, 元素2, 元素3,…}
  • 集合是可变的;集合是无序的
  • 元素 - 必须是不可变的数据;唯一
  1. 空集

    s1 = set()print(len(s1), type(s1))     # 0 
  2. 集合元素必须的不可变的数据

    s2 = {1, 'abc', (23, 4)}print(s2)
  3. 集合无序

    print({1, 2, 3} == {3, 1, 2})  # True
  4. 元素是唯一的

    s3 = {1, 2, 3, 1, 3, 2, 1}print(s3)names = ['张三', '张三', '小明', '李四', '张三', '小明']print(set(names))  # {'李四', '小明', '张三'}

2. 集合的增删改查

  1. 查 - 只能遍历
    hobby = {‘玩游戏’, ‘看电影’, ‘打篮球’, ‘爬山’, ‘做饭’}

    for x in hobby:print(x)
  2. 增:

    集合.add(元素)

    集合.update(序列)

    hobby.add('游泳')print(hobby)hobby.update(('乒乓球', '羽毛球'))print(hobby)
  3. 集合.remove(元素)

    集合.discard(元素) - 如果元素不存在不会报错

    hobby.remove('做饭')print(hobby)hobby.discard('玩游戏')print(hobby)

三. 数学集合运算

1. Python中的集合支持数学集合运算

  1. 并集 - |

    集合1 | 集合2 - 将两个集合合并成一个集合

s1 = {1, 2, 3, 4, 5, 6}s2 = {4, 5, 6, 7, 8}result = s1 | s2print(result)   # {1, 2, 3, 4, 5, 6, 7, 8}
  1. 交集 - &

    集合1 & 集合2 - 获取两个集合的公共部分,产生一个新的集合

s1 = {1, 2, 3, 4, 5, 6}s2 = {4, 5, 6, 7, 8}result = s1 & s2print(result)   # {4, 5, 6}
  1. 差集 - -

    集合1 - 集合2 - 获取集合1中去掉包含在集合2中的元素,剩下的元素

s1 = {1, 2, 3, 4, 5, 6}s2 = {4, 5, 6, 7, 8}result = s1 - s2print(result)     # {1, 2, 3}result = s2 - s1print(result)    # {7, 8}
  1. 对称差集 - ^

    集合1 ^ 集合2 - 将两个集合合并,去掉公共部分获取剩下的部分

s1 = {1, 2, 3, 4, 5, 6}s2 = {4, 5, 6, 7, 8}result = s1 ^ s2print(result)   # {1, 2, 3, 7, 8}
  1. 判断子集关系
# 子集:<=、>=# 真子集:<、># 集合1 > 集合2 - 判断集合2是否是集合1的真子集# 集合1 < 集合2 - 判断集合2是否是集合1的真子集s3 = {10, 20, 30}# 真子集:{10}, {20}, {30}, {10, 20},空集...# 子集: {10}, {20}, {30}, {10, 20}, 空集...{10, 20, 30}
print({100, 200, 300} >= {100, 200, 300})  # Trueprint({100, 200, 300} > {100, 200, 300})   # False
# 练习1:用三个集合表示三门学科的选课学生姓名(一个学生可以同时选多门课)math = {'张三', '李四', '小花'}english = {'张三', '王二'}music = {'张三', '李四', '王二', '小明'}# 1. 求选课学生总共有多少人set1 = math | english | musicprint('选课学生总人数为:', len(set1))# 2. 求只选了第一个学科的人的数量和对应的名字set2 = math - english - musicprint('只选了第一个学科的人数为:', len(set2), set2)# 3. 求只选了一门学科的学生的数量和对应的名字set3 = (math - english - music)set4 = (english - math - music)set5 =(music - english -math)set6 = set3 | set4 | set5print('只选了一门学科的学生人数:', len(set6), set6)# 4. 求只选了两门学科的学生的数量和对应的名字set7 = set1 - set6 - (math & english & music)print('只选了两门学生的学生的人数为:', len(set7), set7)# 5. 求选了三门学生的学生的数量和对应的名字set5 = math & english & musicprint('选了三门学生的学生的人数为:', len(set5), set5)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/268497.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号