字典是“键值对”的无序可变序列,其每个元素都是“键值对”,包含:“键对象”和“值对象”,通过“键对象”迅速获取,删除,更新相应的“值对象”,“键”是任意的不可变数据,如:整数,浮点数,字符串,元组,但是字典,列表,集合这些可变对象不可作为“键”,且键是不可重复的。
字典的创建
1.通过{},dict()创建
1 a = {"name":"kang","age":18,"height":180} 2 b = dict(name="kang",age=18,height=180) 3 c = dict([("name","kang"),("age",18),("height",180)]) 4 d = {} #空字典 5 e = dict() #空字典 6 print("a",a) 7 print("b",b) 8 print("c",c) 9 print("d",d) 10 print("e",e)
运行结果:
a {'name': 'kang', 'age': 18, 'height': 180}
b {'name': 'kang', 'age': 18, 'height': 180}
c {'name': 'kang', 'age': 18, 'height': 180}
d {}
e {}
2.通过zip()创建
1 k = ("name","age","height") 2 v = ("kang",18,180) 3 f = dict(zip(k,v))
运行结果:
f {'name': 'kang', 'age': 18, 'height': 180}
字典的删除
1.del()方法
a = {"name":"kang","age":18,"height":180,'job': 'IT'} del(a["job"]) print(a)
运行结果:
{'name': 'kang', 'age': 18, 'height': 180}
2.pop()删除指定键值对,并返回对应的“值对象”
a = {"name":"kang","age":18,"height":180,'job': 'IT'} b = a.pop("age") print(b) print(a)
运行结果:
18
{'name': 'kang', 'height': 180, 'job': 'IT'}
3.clear()方法,删除所有的键值对
a = {"name":"kang","age":18,"height":180,'job': 'IT'} a.clear() print(a)
运行结果:
{}
字典的修改
1.给存在的键重新赋值
a = {"name":"kang","age":18,"height":180,'job': 'IT'} a["job"] = "tester" print(a)
运行结果:
{'name': 'kang', 'age': 18, 'height': 180, 'job': 'tester'}
2.使用 update()将新字典中所有键值对全部添加到旧字典对象上,如果key有重复,则直接覆盖。
a = {"name":"kang","age":18,"height":180,'job': 'IT'} b = {"age":17,"sex":"男"} a.update(b) print(a)
运行结果:
{'name': 'kang', 'age': 17, 'height': 180, 'job': 'IT', 'sex': '男'}
字典的访问
1.通过[键]访问,如果没有输入的键,则报错
a = {"name":"kang","age":18,"height":180,'job': 'IT'} b = a["name"] print("name is:",b) #c = a["fu"] #KeyError: 'fu' 字典中没有 fu的key,所以报错 #print(c) #
运行结果:
name is kang
2.通过get()方法访问,如果没有键,则显示None,获取元素,优先选择该方法
a = {"name":"kang","age":18,"height":180,'job': 'IT'} b = a.get("name") print("name is:",b) c = a.get("fu") print("fu is:",c)
运行结果:
name is: kang
fu is: None
3.列出所有的键值对items()
a = {"name":"kang","age":18,"height":180,'job': 'IT'} print(a.items())
运行结果:
dict_items([('name', 'kang'), ('age', 18), ('height', 180), ('job', 'IT')])
4.keys(),values()获取所有的键和所有的值
a = {"name":"kang","age":18,"height":180,'job': 'IT'} print(a.keys())
print(a.values())
运行结果:
dict_keys(['name', 'age', 'height', 'job'])
dict_values(['kang', 18, 180, 'IT'])
5.len()键值对的个数
a = {"name":"kang","age":18,"height":180,'job': 'IT'} print(len(a))
运行结果:
4
6.检测此键是否存在字典中
a = {"name":"kang","age":18,"height":180,'job': 'IT'} print("sex" in a) print("name" in a)
运行结果:
False
True