字典的创建
1.{}; dict()
a = {"name": "ZJ", "age": 18, "dd": [2, 3, 4]}
print(a)
b = dict(name="ZJ", age=18)
print(b)
c = dict([('name', 'ZJ'), ('age', 18)])
print(c)
d = {}
print(d) # 空的的字典对象
#输出:{'name': 'ZJ', 'age': 18, 'dd': [2, 3, 4]}
#输出:{'name': 'ZJ', 'age': 18}
#输出:{'name': 'ZJ', 'age': 18}
#输出:{}
2.zip()创建
k = ["a", "b", "c"]
v = [100, 200, 300]
d = dict(zip(k, v))
print(d)
#输出:{'a': 100, 'b': 200, 'c': 300}
3.通过fromkeys创建值为空的字典
a = dict.fromkeys(["a","b","c"])
print(a)
#输出:{'a': None, 'b': None, 'c': None}
字典的访问
a = {"name": "ZJ", "age": 18, "job": "programmer"}
1.通过【建】直接访问,不存在则出现异常;
print(a["name"]) #输出:ZJ
2.get().
优点:指定键不存在,返回None,也可以设定键不存在时默认返回的对象
print(a.get("name")) #输出:ZJ
print(a.get("dddd")) #输出:None
print(a.get("ddd", "不存在")) #输出:不存在
3.列出所有键值对,a.items()
print(a.items())
#输出:dict_items([('name', 'ZJ'), ('age', 18), ('job', 'programmer')])
4.列出所有键,所有的值,a.keys() a.values()
print(a.keys()) #输出:dict_keys(['name', 'age', 'job'])
print(a.values()) #输出:dict_values(['ZJ', 18, 'programmer'])
5.len(),键值对的个数
print(len(a)) #输出:3
6.检测一个键是否在字典中
print("name" in a) #输出:True
7.给字典新增"键值对"。如果"键"已经存在,则覆盖旧的键值对;如果"键"不存在,则新增“键值对”
a = {"name": "ZJ", "age": 18, "job": "programmer"}
a["address"] = "华府礼尚"
print(a)
#输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'address': '华府礼尚'}
a["name"] = "ZJ"
print(a)
#输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'address': '华府礼尚'}
8.使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖。
a = {"name": "ZJ", "age": 18, "job": "programmer"}
b = {"name": "ZJ", "money": 1000, "sex": "男的"}
a.update(b)
print(a)
#输出:{'name': 'ZJ', 'age': 18, 'job': 'programmer', 'money': 1000, 'sex': '男的'}
9.删除,del();
删除指定,pop()
删除所有,clear()
a = {"name": "ZJ", "age": 18, "job": "programmer"}
del (a["age"])
print(a) #输出:{'name': 'ZJ', 'job': 'programmer'}
b = a.pop("name")
print(b) #输出:ZJ
a.clear()
print(a) #输出:{}
10.popitem(),随机删除和返回该键值对。若想一个接一个地移除并处理项,这个方法非常有效
a = {"name": "ZJ", "age": 18, "job": "programmer"}
a.popitem()
print(a) #输出:{'name': 'ZJ', 'age': 18}
a.popitem()
print(a) #输出:{'name': 'ZJ'}
a.popitem()
print(a) #输出:{}
11.序列解包可用于元组、列表、字典。方便对多个变量赋值
x, y, z = 20, 30, 10
print(y) #输出:30
x, y, z = (20, 30, 10)
print(z) #输出:10
(a, b, c) = (10, 20, 30)
print(a) #输出:10
[a, b, c] = (10, 20, 30)
print(c) #输出:30
12.items-键;values—值
s = {"name": "ZJ", "age": 18, "job": "teacher"}
a, b, c = s
print(a) #输出:name
e, d, f = s.values()
print(b) #输出:age
i, j, h = s.items()
print(i) #输出:('name', 'ZJ')
print(h[0]) #输出:job
print(h[1]) #输出:teacher
13.查找对象
r1 = {"name": "高小一", "age": 18, "salary": "30000", "city": "北京"}
r2 = {"name": "高小二", "age": 19, "salary": "20000", "city": "上海"}
r3 = {"name": "高小五", "age": 20, "salary": "10000", "city": "深圳"}
tb = [r1, r2, r3]
(1)# 获得第二行人的薪资
print(tb[1].get("salary")) #输出:20000
(2)打印表中所有的薪资
for i in range(len(tb)): # i--> 0,1,2
print(tb[i].get("salary"))
#输出:30000
# 20000
# 10000
(3) 打印表的所有数据
for i in range(len(tb)):
print(tb[i].get("name"), tb[i].get("age"), tb[i].get("salary"), tb[i].get("city"))
#输出:高小一 18 30000 北京
# 高小二 19 20000 上海
# 高小五 20 10000 深圳