day08

字典

  1. 保存多个数据的时候,各个数据的意义不尽相同,可以用字典进行保存来对数据的意义进行说明

    认识字典
    1. 容器型数据类型

    2. 格式 { key:value,key:value } 字典的元素只能是键值对 key: 不可变元素(数字,字符串,bool,字符串),key值唯一;value: 无要求

    3. 空字典 dict={ }

    4. 字典可以修改,字典是无序的

    字典操作
    1. 查单个 dict[key] 获取字典中字典的值 dict.get(key,默认值) :当key值不存在时前者会报错,后者回返回默认值若默认值不存在则返回None

    2. 字典 列表嵌套

      class1 = {
          'name': '201',
          'address': '12',
          'lecturer': {
              'name': 'a',
              'gender': '女',
              'tel': '136737345345381973853752302'
          },
          'class_teacher': {
              'name': 'b',
              'gender': '女',
              'tel': '123410',
              'age': 20,
              'QQ': '6178182156271'
          },
          'students': [
              {'name': '小明', 'gender': '男', 'age': 18, 'score': 100, 'education': '专科', 'linkman': {'name': '小吴', 'tel': '1143534537543754357375430'}},
              {'name': '小花', 'gender': '女', 'age': 20, 'score': 98, 'education': '本科', 'linkman': {'name': '小张', 'tel': '1234537543754357375430'}},
              {'name': '张三', 'gender': '男', 'age': 30, 'score': 90, 'education': '本科', 'linkman': {'name': '小赵', 'tel': '1134537543754357375439'}},
              {'name': '李四', 'gender': '男', 'age': 22, 'score': 70, 'education': '专科', 'linkman': {'name': '小刘', 'tel': '1334537543754357375434'}},
              {'name': '王二', 'gender': '男', 'age': 28, 'score': 95, 'education': '本科', 'linkman': {'name': '小徐', 'tel': '23345375437543573754383'}},
              {'name': '赵敏', 'gender': '女', 'age': 27, 'score': 99, 'education': '专科', 'linkman': {'name': '小胡', 'tel': '233453754375435737543423'}},
              {'name': '老王', 'gender': '男', 'age': 22, 'score': 89, 'education': '本科', 'linkman': {'name': '小王', 'tel': '12334537543754357375434'}}
          ]
      }
      
      # 1) 获取班级名字
      print(class1.get('address'))
      # 2) 获取讲师的名字
      print(class1.get('lecturer').get('name'))
      # 3) 获取班主任电话号码
      print(class1.get('class_teacher').get('tel'))
      # 4) 统计学生中男生的数量
      print(sum([1 for i in class1.get('students') if i.get('gender')=='男']))
      # 5) 计算所有学生分数的平均分
      print(round(sum([i.get('score') for i in class1.get('students')])/len([i.get('score') for i in class1.get('students')]),2))
      # 6) 获取分数最高的学生的名字
      maxs=max([i.get('score') for i in class1.get('students')])
      print([i.get('name') for i in class1.get('students') if i.get('score')==maxs])
      # 7) 获取所有紧急联系人的电话
      print([i.get('linkman').get('tel') for i in class1.get('students')])
      
遍历
     1. 遍历字典得到的是key值

     2. for key,value in dict.items():

增删改
  1. 增改:dic[key]=值 如果键存在就修改,不存在就添加
  2. dict.setdefault(key,value) 添加元素 如果键存在,如果不存在就增加一个键值对
  3. dict.pop(键) del dict[键]
相关操作
  1. 运算符:字典不支持:+,-,*,<,>,>=,<= 只支持 ==,!=

  2. in , not in 判断键值是否存在

相关函数
  1. len[dict] 求元素个数
  2. dict(数据) 将指定数据转换成字典
    • 数据必须是一个序列
    • 序列中的元素必须有且只有俩个元素的小序列,并且其中第一个元素是不可变的数据
相关方法
  1. dict.clear()
  2. dict.copy()
  3. dict.keys() 返回一个序列
  4. dict.values() 返回所有的值
  5. dict.items() 返回所有的键值对,输出dict_items([(key,value),(key,value)])
  6. dict.update() 将序列中的所有元素(元素必须可以转化成字典)添加到dict中
  7. 字典推导式: {键 :值 for i in 序列 } { 键 :值 for i in 序列 if }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值