python数据序列-字典

1、为什么需要字典

如果要存储一个人的信息,姓名:Tom,年龄:20周岁,性别:男,如何快速存储。

1
person = ['Tom', '20', '男']

在日常生活中,姓名、年龄以及性别同属于一个人的基本特征。但是如果使用列表对其进行存储,则分散为3个元素,这显然不合逻辑。可以使用python中的字典完成这个功能。

2、Python中字典(dict)的概念

特点:

① 符号为大括号(花括号) => {}

② 数据为键值对形式出现 => {key:value},key:键名,value:值,在同一个字典中,key必须是唯一(类似于索引下标)

③ 各个键值对之间用逗号隔开

定义:

1
2
3
4
5
6
7
# 有数据字典
dict1 = {'name': 'Tom', 'age': 20, 'gender': '男'}

# 空字典
dict2 = {}

dict3 = dict()

3、字典的增操作

基本语法:

1
2
字典名称[key] = value
如果key存在则修改这个key对应的值如果key不存在则新增此键值对

案例:定义一个空字典,然后添加name、age以及address这样的3个key

1
2
3
4
5
6
7
8
# 1、定义一个空字典
person = {}
# 2、向字典中添加数据
person['name'] = '刘备'
person['age'] = 40
person['address'] = '蜀中'
# 3、使用print方法打印person字典
print(person)

注意:列表、字典为可变类型

4、字典的删操作

① del 字典名称[key]:删除指定元素

1
2
3
4
5
6
# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、删除字典中的某个元素(如gender)
del person['gender']
# 3、打印字典
print(person)

② clear()方法:清空字典中的所有key

1
2
3
4
5
6
# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、使用clear()方法清空字典
person.clear()
# 3、打印字典
print(person)

5、字典的改操作

基本语法:

1
2
字典名称[key] = value
如果key存在则修改这个key对应的值如果key不存在则新增此键值对

案例:定义一个字典,里面有name、age以及address,修改address这个key的value值

1
2
3
4
5
6
# 1、定义字典
person = {'name':'孙悟空', 'age': 600, 'address':'花果山'}
# 2、修改字典中的数据(address)
person['address'] = '东土大唐'
# 3、打印字典
print(person)

6、字典的查操作

① 查询方法:使用具体的某个key查询数据,如果未找到,则直接报错。

1
字典序列[key]

② 字典的相关查询方法

编号 函数 作用
1 get(key, 默认值) 根据字典的key获取对应的value值,如果当前查找的key不存在则返回第二个参数(默认值),如果省略第二个参数,则返回None
2 keys() 以列表返回一个字典所有的键
3 values() 以列表返回字典中的所有值
4 items() 以列表返回可遍历的(键, 值) 元组数组

案例1:使用get获取字典中某个key的value值

1
2
3
4
5
6
7
8
# 1、定义一个字典
cat = {'name':'Tom', 'age':5, 'address':'美国纽约'}
# 2、获取字典的相关信息
name = cat.get('name')
age = cat.get('age')
gender = cat.get('gender', 'male')  # get(key, 默认值)
address = cat.get('address')
print(f'姓名:{name},年龄:{age},性别:{gender},住址:{address}')

案例2:提取person字典中的所有key

1
2
3
4
# 1、定义一个字典
person = {'name':'貂蝉', 'age':18, 'mobile':'13765022249'}
# 2、提取字典中的name、age以及mobile属性
print(person.keys())

案例3:提取person字典中的所有value值

1
2
3
4
# 1、定义一个字典
person = {'name':'貂蝉', 'age':18, 'mobile':'13765022249'}
# 2、提取字典中的貂蝉、18以及13765022249号码
print(person.values())

案例4:使用items()方法提取数据

1
2
3
4
5
6
7
# 1、定义一个字典
person = {'name':'貂蝉', 'age':18, 'mobile':'13765022249'}
# 2、调用items方法获取数据,dict_items([('name', '貂蝉'), ('age', 18), ('mobile', '13765022249')])
# print(person.items())
# 3、结合for循环对字典中的数据进行遍历
for key, value in person.items():
    print(f'{key}{value}')