组团学

常见数据结构-dict字典

阅读 (191517)

一、概述

  • 概念

    使用键值对(key-value)的形式存储数据,具有极快的查找速度

  • 特性

    1. 字典中的key必须唯一

    2. 键值对是无序的

    3. key必须是不可变对象

      a:字符串、数字都是不可变的,可以作为key(一般为字符串)

      b:列表是可变的,不能作为key

  • 思考

    保存一个学生的信息(姓名、学号、性别、年龄、身高、体重)

    str1 = "zutuanxue#1#男#18#173.5#80" li1 = ["zutuanxue", 1, "男", 18, 173.5, 80] t1 = ("zutuanxue", 1, "男", 18, 173.5, 80)
  • 问题解决

    使用字典

    定义格式:字典名 = {key1:value1, key2:value2,……,keyn:valuen}

二、基本使用

  • 创建

    # 创建一个字典保存一个学生信息 stu1 = {"name": "zutuanxue", "age": 18, "sex": "男", "height": 173.5, "weight":80, "id": 1} stu2 = {"name": "liudh", "age": 57, "sex": "男", "height": 180, "weight":75, "id": 2} stus = [stu1, stu2]
  • 访问字典的值

    stu3 = {"name": "zutuanxue", "age": 18, "sex": "男", "height": 173.5, "weight":80, "id": 1} # 获取 字典名[key] print(stu3["name"]) # print(stu3["money"]) #获取不存在的属性值会报错 # 获取 字典名.get(key) print(stu3.get("age")) print(stu3.get("money")) # 获取不存在的属性会得到None money = stu3.get("money") if money: print("money = %d"%money) else: print("没有money属性")
  • 添加键值对

    # 添加键值对,没有的键会添加,有的会修改 stu3["nikeName"] = "kaige" stu3["age"] = 16
  • 删除

    stu3.pop("nikeName") print(stu3)

三、比较list与dict

  • list

    优点:占用的内存空间小,浪费的内存很少

    缺点:查找和插入的效率会随着元素的增多而降低

  • dict

    优点:查找和插入的速度极快,不会随着key-value的增多而降低效率

    缺点:需要占用大量的内存,内存浪费过多

需要 登录 才可以提问哦