python 第七章 字典dict {}

系列文章目录
第一章 初识python
第二章 变量
第三章 基础语句
第四章 字符串str
第五章 列表list []
第六章 元组tuple ( )


文章目录

  • 字典的应用场景
  • 创建字典的语法
  • 字典常见操作
  • 字典的循环遍历
    • 遍历字典的key
    • 遍历字典的value
    • 遍历字典的元素
    • 遍历字典的键值对(拆包)


字典的应用场景

思考1: 如果有多个数据,例如: Tom’,男20,如何快速存储?
答:列表 list1 = ['LiHua', '男', 20]

思考2:如何查找到数据’LiHua’?
答:查找到下标为0的数据即可 list1[0]

思考3: 如果将来数据顺序发生变化,如下所示,还能用 list1[0] 访问到数据’LiHua’吗?
list1 = [男',20,'LiHua']
答:不能,数据’LiHua’此时下标为2

思考4: 数据顺序发生变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使用同一的标准查找数据呢?
答:字典,字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标后期无论数据如何变化,只需要按照对应的键的名字查找数据即可。

创建字典的语法

字典特点:

  • 符号为大括号
  • 数据为键值对形式出现
  • 各个键值对之间用逗号隔开

有数据字典:

  • dict1 = {'name': 'LiHua', 'age': 20, 'gender': '男'}

空字典:

  • dict2 = {}
  • dict3 = dict()
# 有数据字典
dict1 = {'name': 'LiHua', 'age': 20, 'gender': '男'}

print(type(dict1))  # 
print(dict1)  # {'name': 'LiHua', 'age': 20, 'gender': '男'}

注意:一般称冒号前面的为键(key) 简称k;冒号后面的为值(value),简称v

字典常见操作

写法: 字典序列[key] = 值

注意:
1.如果key存在则修改这个key对应的值; 如果key不存在则新增此键值对。
2.字典为可变类型

# 有数据字典
dict1 = {'name': 'LiHua', 'age': 18, 'gender': '男'}

dict1['name'] = "意境"
print(dict1)  # {'name': '意境', 'age': 18, 'gender': '男'}

dict1['id'] = 52
print(dict1)  # {'name': '意境', 'age': 18, 'gender': '男', 'id': 52}

写法: 字典序列[key] = 值

注意: 如果key存在则修改这个key对应的值; 如果key不存在则新增此键值对。

  • del() / del: 删除字典或删除字典中指定键值对
    删除失败会报错
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

del (d1)
print(d1)  # 报错证明删除成功
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

del d1['name']
print(d1)  # {'age': 18, 'gender': '男'}
# del d1['name']  # 报错 KeyError: 'name' 没有name这个键了

  • clear(): 清空字典
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

d1.clear()
print(d1)  # {}

  • key值查找
    字典序列[key]

如果当前查找的key存在,则返回对应的值;否则则报错.

  • get()
    语法
    字典序列.get(key,默认值)

注意: 如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None。

  • keys() 查找字典中所有的key,返回可迭代的对象
    字典序列.keys()
    返回值:dict_keys,是一个可迭代的对象,也就是说我们可以用for循环遍历的一个对象
  • 字典序列.values()
    查找字典中所有的值(value),返回可迭代的对象
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

print(d1.values())  # dict_values(['意境', 18, '男'])
print(type(d1.values()))  # 
  • 字典序列.items()
    查找所有键值对,返回可迭代的对象,里面的数据是元组,元组数据1是字典的key,元组数据2是字典key对应的值。
d1 = {'name': '意境', 'age': 18, 'gender': '男'}

print(d1.items())  # dict_items([('name', '意境'), ('age', 18), ('gender', '男')])
print(type(d1.items()))  # 

字典的循环遍历

遍历字典的key

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for key in d1.keys():
    print(key)
    print(d1[key])

python 第七章 字典dict {}_第1张图片

遍历字典的value

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for value in d1.values():
    print(value)

python 第七章 字典dict {}_第2张图片

遍历字典的元素

python 第七章 字典dict {}_第3张图片

遍历字典的键值对(拆包)

我们对得到的键值对进行拆包动作

d1 = {'name': '意境', 'age': 18, 'gender': '男'}

for key,value in d1.items():
    print(f"{key} = {value}")

python 第七章 字典dict {}_第4张图片

.items()返回的迭代对象内部是元组,一个元组一个键值对,元组里面有两个数据,第一个是字典的key,第二个是字典的value,所以我们拿了两个临时变量,意味着将元组里第一个数据存储到第一个临时变量,元组里第二个数据存储到第二个临时变量,这就是把元组数据进行了分离,分别分离到了key、value两个临时变量做了接收,那么这个动作就是所谓的拆包动作。

你可能感兴趣的:(python笔记,python,开发语言)