以下是本人最近学习字典中的相关说明及代码分享。
字典的定义
- dictionary(字典) 是 除列表以外 Python之中 最灵活的数据类型
- 字典同样可以用来存储多个数据
- 通常用于存储描述一个物体的相关信息
- 和列表的区别
- 列表 是 有序对象的集合
- 字典 是 无序对象的集合
- 字典用 {} 定义
- 字典使用键值对存储数据,键值对之间用 , 分隔
- 键 key 是索引
- 值 value 是数据
- 键和值之间用:分隔
- 键必须是唯一
- 值可以取任何数据类型,但键 只能是 字符串,数字或元组
字典常用操作方法
在ipython3中定义一个列表person_dict ={"name":"小明"}
输入person_dict.
按下Tab键,ipython会提示列表能够使用的方法如下:
clear() get pop update
copy items popitem values
fromkeys keys setdefault
序号 | 关键字/函数/方法 | 说明 |
---|---|---|
1 | 字典.clear() | 删除字典内所有元素 |
2 | 字典.copy() | 返回一个字典的浅复制 |
3 | dict.fromkeys(seq,value) | 创建一个新字典,以元组seq中元素做字典的键,val为字典所有键对应的初始值 |
4 | 字典.get(key, default=None) | 返回指定键的值,如果值不在字典中返回default值 |
5 | key in 字典 | 如果键在字典dict里返回true,否则返回false |
6 | 字典.items() | 以列表返回可遍历的(键, 值) 元组数组 |
7 | 字典.keys() | 返回一个迭代器,可以使用 list() 来转换为列表 |
8 | 字典.setdefault(key, default=None) | 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default |
9 | 字典…update(字典2) | 把字典2的键/值对更新到字典里 |
10 | 字典.values() | 返回一个迭代器,可以使用 list() 来转换为列表 |
11 | 字典.pop(key[,default]) | 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。 |
12 | 字典.popitem() | 随机返回并删除字典中的最后一对键和值。 |
dictionary_09_字典的定义
代码
# 字典是一个无序的数据集合,使用print函数输出时,通常和定义的顺序是不一致的
person = {"name": "小明",
"age": 18,
"gender": True,
"height": 1.98,
"weight": 77.5}
print(person)
输出结果
{‘name’: ‘小明’, ‘age’: 18, ‘gender’: True, ‘height’: 1.98, ‘weight’: 77.5}
dictionary_10_字典基本使用
代码
person_dict = {"name": "小明",
"age": 23}
# 取值
print(person_dict["name"])
# 在取值时,指定的key不存在,程序会报错 KeyError: 'name23'
# print(person_dict["name23"])
# 增加/修改
person_dict["height"] = 1.76
print(person_dict)
person_dict["age"] = 18
print(person_dict)
# 删除
person_dict.pop("age")
print(person_dict)
输出结果
小明
{‘name’: ‘小明’, ‘age’: 23, ‘height’: 1.76}
{‘name’: ‘小明’, ‘age’: 18, ‘height’: 1.76}
{‘name’: ‘小明’, ‘height’: 1.76}
dictionary_11_字典的其他操作
代码
person_dict = {"name": "小明",
"age": 23}
# 统计字典键值对数量
print(len(person_dict))
# 合并字典
temp_dict = {"height": 1.98,
"age": 18}
# 如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
person_dict.update(temp_dict)
print(person_dict)
# 创建一个新字典
seq = ("xingming","nianling","shengao")
new_dict = dict.fromkeys(seq, 10)
print(new_dict)
# 清空字典
person_dict.clear()
print(person_dict)
输出结果
2
{‘name’: ‘小明’, ‘age’: 18, ‘height’: 1.98}
{‘xingming’: 10, ‘nianling’: 10, ‘shengao’: 10}
{}
dictionary_12_字典遍历
代码
person_dict = {"name": "小明",
"address": "https://blog.csdn.net/weixin_44152160/article/details/105347472",
"Phone": "weixin_44152160"}
# 迭代遍历字典
for k in person_dict:
print("%s---%s" % (k, person_dict[k]))
输出结果
name—小明
address—https://blog.csdn.net/weixin_44152160/article/details/105347472
Phone—weixin_4415216
dictionary_13_字典的应用场景
代码
# 使用多个键值对存储描述物体的信息,
# 将多个字典放在列表中进,进行循环
card_list = [{"name": "张三",
"QQ": "666666",
"Phone": "10086"},
{"name": "李四",
"QQ": "888888",
"Phone": "10010"}]
for card_info in card_list:
print(card_info)
输出结果
{‘name’: ‘张三’, ‘QQ’: ‘666666’, ‘Phone’: ‘10086’}
{‘name’: ‘李四’, ‘QQ’: ‘888888’, ‘Phone’: ‘10010’}