学习内容:
1、认识字典
2、字典的定义
3、字典的增、删、改、查
4、字典的遍历
一、认识字典
Think about it
如果你需要存储多名学生的姓名和身高信息。并找到某一同学的身高,你会怎么做呢?
假设:我们用一个列表存储每位同学的姓名和身高,为了能对上号我们得这样:
students = ["小红 :180cm", "小白 :150cm", "小绿 :170cm"]
当我们要得到“小白”的身高,我们得这样:
1、先遍历整个list得到元素:“小白 :150cm”
2、再用调用split()方法,按“:”切割,得到:[“小白”, “150cm”]
3、通过list索引 : list[2], 得到小白得身高
有没有什么方法可快速定位到小白得身高呢?
答案是有的——字典。
1、什么是字典?
- 字典和列表一样,也能存储多个数据(也是一个容器)
- 列表中查找某个元素时,是根据下标进行的
- 字典由键值对组成,键:值。由键查找值。
- 键是唯一的,不能重复
2、字典的定义
格式:字典名 = {key1: value1, key2: value2, key3: value3…}
# 定义一个空字典
dict1 = {}
# 定义一个非空字典
dict2 = {"id": "101", "name": "小绿", "sex": "男", "age": "18"}
结果:{'id': '101', 'name': '小绿', 'sex': '男', 'age': '18'}
3、字典的增、删、改、查
增加键值对:dictionary_name[new_key] = new_value
demo:
dict1 = {"name": "小白", "sex": "女", "age": 18}
dict1["address"] = "北京"
print(dict1)
结果:{'name': '小白', 'sex': '女', 'age': 18, 'address': '北京'}
删除键值对:dictionary_name.pop(key)
or dictionary_name.popitem()
demo
dict2 = {'name': '小白', 'sex': '女', 'age': 18, 'address': '北京'}
# 删除“姓名”
dict1.pop("name")
print(dict1)
# 删除最后一个元素
dict1.popitem()
print(dict1)
结果:
{'sex': '女', 'age': 18, 'address': '北京'}
{'sex': '女', 'age': 18}
修改键值对:dictionary_name[key] = new_value
note: 只能修改value,不能修改key
demo
dict3 = {'name': '小白', 'sex': '女', 'age': 18, 'address': '北京'}
dict1["sex"] = "男"
结果:{'name': '小白', 'sex': '男', 'age': 18, 'address': '北京'}
清空键值对:dictionary_name.clear()
demo
dict3.clear()
print(dict3)
结果:None
查找:
(1)通过关键字查找,查找失败会报错。
demo
dict4 = {"id": 100, "name": "小白", “tel”: 188888888}
print(dict4["name"])
print(dict2["name"])
print(dict2["sex"])
结果:
小白
Traceback (most recent call last):
File :......
print(dict2["sex"])
KeyError : 'sex'
(2)字典名. get(key)得到value,不存在返回None
demo
print(dict2.get("name"))
print(dict2.get("sex"))
结果:
小白
None
四、字符串的遍历
dict1 = {"id": 100, "name": "老王", "sex": "男"}
key_list = dict1.keys()
# print(key_list)
# print(dict1.keys())
for key in dict1.keys():
value = dict1.get(key)
print(f'{key}={value}')
# item得到的是一个列表,列表中的元素是一个键值对组成的元组
key_list2 = dict1.items()
print(key_list2)
for key_value in key_list2:
key = key_value[0]
value = key_value[1]
print(f'{key}={value}')
# 一个神奇的写法
for key, value in key_list2:
print(f'{key}={value}')
note:
字典定义,键值对中键的冒号后面记得敲空格,每个键值对用逗号分割,逗号后面也不要忘了空格。