字典
认识字典
person = {
"name": "zp",
"age": "23",
"sex": "male",
"height": 181,
(1, 2): "666",
80001: "陈冠希", # 一般不使用int型 除非有实际意义
80002: "刘德华",
"sex": "female" # 不会报错 但是会把之前的键的值给覆盖掉
}
print(person)
# 注意: 01 元素是键值对 key:value 键和值之间用冒号拼接
# 02 字典的键只能是不可变类型
# 03 字典中的键如果重复出现后,不会报错,但是后面键的值会覆盖前面的值
# 04 注意字典和集合的区别:声明字典时可以直接使用dict01 = {}的赋值语句,而集合的声明方式
# 只能是set01 = set()
#
字典的基本用法:
1. 查找操作
person = {
"name": "zp",
"age": "23",
"sex": "male",
"height": 181
}
print(person["name"]) # zp
# print(person["beauty"]) # 如果查找的键不存在,就会报错
print(person.get("beauty"))
# 运行结果: 运行结果:
print(person.get("name", "height"))
# 运行结果:zp
print(person.get("beauty", "height"))
# 运行结果: height
# get方法的总结:
# 01.如果查找的键不存在,就会返回None
# 02.如果一次查找多个键,不会报错,能够查找到只返回第一个键对应的value值
# 03.如果一次查找多个键,查不到第一个键,就返回我们设定的值
test = "name"
print(person[test]) # zp
print(person["test"]) # 报错 没有键:"test
# 注意变量和键的区别
2. 修改操作
person = {
"name": "zp",
"age": "23",
"sex": "male",
"height": 181
}
person["name"] = "pengpeng" # 跟列表类似,列表里边是下标,字典里是键的值
person["jiguan"] = "武汉" # 如果key不存在,则将key和value增加到字典的末尾
print(person)
# 运行结果:{'name': 'pengpeng', 'age': '23', 'sex': 'male', 'height': 181, 'jiguan': '武汉'}
3. 删除操作
# 01.pop
test = person.pop("age")
print(test) # 23
print(person)
# {'name': 'zp', 'sex': 'male', 'height': 181}
# 02.popitem
res = person.popitem() # 删除的是最后一对元素
print(res) # 返回元组 由key和value组成('height', 181)
print(person)
# ('height', 181)
# {'name': 'zp', 'age': '23', 'sex': 'male'}
# 03.del
del person # 删除整个字典
print(person) # name 'person' is not defined 表示删除成功
# 04.clear
person.clear() # 清空字典{}里边的元素
print(person) # {}
4. updata的用法
# 01.将两个列表拼接成一个可以使用“+”
list01 = [1, 2, 3]
list02 = ["a", "b", "c"]
print(list01 + list02)
# [1, 2, 3, 'a', 'b', 'c']
# 02.将两个元组拼接成一个也可以使用"+"
wr1 = ("hello",)
wr2 = ("world",)
print(wr1+wr2)
# 'hello', 'world')
# 03.将两个字典拼接成一个不能使用"+",只能使用updata
dc1 = {"name": "pikaqiu"}
dc2 ={"age": 18}
# print(dc1 + dc2)
# 报错 不能直接加 unsupported operand type(s) for +: 'dict' and 'dict'
dc1.update(dc2) # 将字典dc2合并到dc1中
print(dc1)
# {'name': 'pikaqiu', 'age': 18}
5. 字典的遍历
person = {
"name": "zp",
"age": "23",
"sex": "male",
"height": 181
}
# 第一种方式
for i in person:
print(i, person[i])
print(i, person.get(i))
# 这两种输出方法都可以
# 第二种方式 获取所有的key 然后遍历key 根据key获取对应的value
for i in person.keys():
print(i, person[i])
# 第三种方式: 获取所有的value值,但是不能获得key
for i in person.values():
print(i)
# 第四种方式: 既有键又有值
print(person.items()) # 输出结果是元组
# dict_items([('name', 'zp'), ('age', '23'), ('sex', 'male'), ('height', 181)])
# 第五种方式:通过item的下标输出
for i in person.items():
print(i[0], i[1]) # 将item拆开输出,也叫作拆包
# print(i)
# 第五种方式:将item拆成key和value输出
for key, value in person.items():
# print(key, value)