python基础语法速查速学——字典
字典
- 字典是无序的对象集合,使用键值对存储,具有极快的查找速度、
- 键必须使用不可变类型
- 同一字典中,键必须是唯一的
# 字典的定义
info = {
"name":"吴彦祖","age":18}
# 字典的访问
print(info["name"])
print(info["age"])
吴彦祖
18
直接访问,不存在的键会报错
print(info["gender"])
KeyError Traceback (most recent call last)
in
1 #直接访问,不存在的键会报错
----> 2 print(info[“gender”])
3
4 print(info.get(“gender”))KeyError: ‘gender’
使用.get()方法访问不存在的键不会报错
print(info.get("gender"))
None
如果键不存在就赋值
print(info.get("gender","m")) # 如果找不到就赋值,能找到就不赋值
m
增
info = {
"name":"吴彦祖","age":18}
newID = input("请输入新的学号")
info["id"] = newID
print(info["id"])
请输入新的学号001
001
删 del .clear()
单个键值对测试del
info = {
"name":"吴彦祖","age":18}
print("删除前:%s"%info["name"])
del info["name"] #del把键值对给删除掉,下次就访问不了了
print("删除后:%s"%info["name"])
删除前:吴彦祖
KeyError Traceback (most recent call last)
in
3
4 del info[“name”]
----> 5 print(“删除后:%s”%info[“name”])
KeyError: ‘name’
整个字典测试 del
info = {
"name":"吴彦祖","age":18}
print("删除前:%s"%info)
del info #del把这个字典直接删掉了,下次就访问不了了
print("删除后:%s"%info)
删除前:{‘name’: ‘吴彦祖’, ‘age’: 18}
NameError Traceback (most recent call last)
in
3
4 del info #del把这个字典直接删掉了,下次就访问不了了
----> 5 print(“删除后:%s”%info)
NameError: name ‘info’ is not defined
.clear()清空
info = {
"name":"吴彦祖","age":18}
print("清空前:%s"%info)
info.clear()
print("清空后:%s"%info)
清空前:{‘name’: ‘吴彦祖’, ‘age’: 18}
清空后:{}
查
info = {
"name":"吴彦祖","age":18}
print(info.keys()) #得到所有的键(返回列表)
print(info.values()) #得到所有的值(返回列表)
print(info.items()) #得到所有的键值对(返回列表,其中列表的元素是元组)
dict_keys([‘name’, ‘age’])
dict_values([‘吴彦祖’, 18])
dict_items([(‘name’, ‘吴彦祖’), (‘age’, 18)])
# 遍历所有的键
for key in info.keys():
print(key)
print("-"*20)
# 遍历所有的值
for values in info.values():
print(values)
print("-"*20)
# 遍历所有的项
for item in info.items():
print(item)
print("-"*20)
# 遍历所有的键值对
for key,value in info.items():
print("key=%s,values=%s"%(key,value))
name
age
--------------------
吴彦祖
18
--------------------
(‘name’, ‘吴彦祖’)
(‘age’, 18)
--------------------
key=name,values=吴彦祖
key=age,values=18
常用操作