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 |
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}')
|