共计 1007 个字符,预计需要花费 3 分钟才能阅读完成。
一、概述
-
概念
使用键值对 (key-value) 的形式存储数据,具有极快的查找速度
-
特性
-
字典中的 key 必须唯一
-
键值对是无序的
-
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 的增多而降低效率
缺点:需要占用大量的内存,内存浪费过多
正文完
星哥玩云-微信公众号