目录
一、字典的定义
dictionary(字典)是除列表以外python之中最灵活的数据类型
字典同样可以用来存储多个数据,通常用于存储描述一个物体的相关信息
和列表的区别:列表是有序的对象集合,字典是无序的对象集合
字典用{}定义
字典使用键值对存储数据,键值对之间使用,分隔
键key是索引
值value是数据
键和值之间使用:分隔
键必须是唯一的
值可以取任何数据类型,但键只能使用字符串、数字或元组
# 字典是一个无序的数据集合,使用print函数输出字典时,通常
# 输出的顺序和定义的顺序是不一致的!
xiaoming = {"name":"小明",
"age":18,
"gender":True,
"height":1.75}
print(xiaoming)
二、字典常用操作
在ipython3中定义一个字典,例如:xiaoming = {}
输入xiaoming.按下TAB键,ipython会提示字典能够使用的函数如下:
字典的增删改查:
xiaoming_dict = {"name":"小明",
"gender":True,
"height":1.75}
# 1.取值
print(xiaoming_dict["name"])
# 在取值的时候,如果指定的key不存在,程序会报错!
# print(xiaoming_dict["name123"])
# 2.增加/修改
# 如果key不存在,会新增键值对
xiaoming_dict["age"] = 18
# 如果key存在,会修改已经存在的键值对
xiaoming_dict["name"] = "小小明"
# 3.删除
# 在删除指定键值对的时候,如果指定的key不存在,程序会报错!
# xiaoming_dict.pop("name123")
xiaoming_dict.pop("name")
print(xiaoming_dict)
字典的统计、合并、清空操作:
xiaoming_dict = {"name":"小明",
"age":"18",
"gender":True}
# 1.统计键值对数量
print(len(xiaoming_dict))
# 2.合并字典
temp_dict = {"height": 1.75,
"age":"20"}
# 注意:如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
xiaoming_dict.update(temp_dict)
print(xiaoming_dict)
# 3.清空字典
xiaoming_dict.clear()
print(xiaoming_dict)
三、循环遍历
遍历就是依次从字典中获取所有键值对
# for循环内部使用的'key 的变量' in 字典
for k in xiaoming:
print("%s" % (k,xiaoming[k]))
提示:在实际开发中,由于字典中每一个键值对保存数据的类型是不同的,所以针对字典的循环遍历需求并不是很多
xiaoming_dict = {"name":"小明",
"qq":"123456",
"phone":"10086"}
# 迭代遍历字典
# 变量k是每一次循环中,获取到的键值对的key
for k in xiaoming_dict:
print("%s - %s" % (k,xiaoming_dict[k]))
四、应用场景
尽管可以使用for in遍历字典,但是在开发中,更多的应用是:
使用多个键值对,存储描述一个物体的相关信息--描述更复杂的数据信息
将多个字典放在一个列表中,再进行遍历,在循环体内针对每一个字典进行相同的处理
card_list = [{"name":"张三",
"qq":"12345",
"phone":"110"},
{"name":"李四",
"qq":"54321",
"phone":"10086"}
]
for card_info in card_list:
print(card_info)