字典
一.字典dict的特点:
1.字典是无序的;
2.字典可以使?key-value的?式来存储数据
二.字典的定义:
dict1=dict()
dict2={}
三.字典的常见使用方法:
1.查看字典的使用方法:dir()
dict1={"name":"tang","age":20,"city":"西安"} print(dir(dict1))
输出:
['__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__ior__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__ror__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
2.对字典的key跟value循环:items()
取出字典dict1中key与对于的value值
dict1={"name":"tang","age":20,"city":"西安"}
执行代码:
for key,value in dict1.items(): print(key,":",value)
输出:
name : tang
age : 20
city : 西安
3.输出所有的key:keys()
如:取出字典dict1中所有的key值
dict1={"name":"tang","age":20,"city":"西安"}
执行:
for key in dict1.keys(): print(key)
输出:
name
age
city
4.输出字典所有的value:values()
如:取出字典dict1中所有的value值
dict1={"name":"tang","age":20,"city":"西安"}
执行:
for value in dict1.values(): print(value)
输出:
tang 20 西安
5.清空字典:clear()
如:清空字典dict1
dict1={"name":"tang","age":20,"city":"西安"}
执行:
dict1.clear() print(dict1)
输出:
{}
6.复制字典:copy()
如:复制字典dict1的值到字典dict2
dict1={"name":"tang","age":20,"city":"西安"}
执行:
dict2=dict1.copy() print(dict2) print(dict1)
输出:
{'name': 'tang', 'age': 20, 'city': '西安'} {'name': 'tang', 'age': 20, 'city': '西安'}
7.删除字典中的key与value值:pop()
如:删除字典dict1中的key-age与value-20
dict1={"name":"tang","age":20,"city":"西安"}
执行:
print(dict1.pop("age")) print(dict1)
输出:
20 {'name': 'tang', 'city': '西安'}
8.合并字典:updat()
如:合并字典dict2的值到字典dict1的值中
dict1={"name":"tang","age":20,"city":"西安"} dict2={"hobby":"读书"}
执行:
dict1.update(dict2) print(dict1)
输出:
{'name': 'tang', 'age': 20, 'city': '西安', 'hobby': '读书'}
9.获取key对于具体的value值:
如:获取dict1中key-hobby对应的值
dict1={'name': 'tang', 'age': 20, 'city': '西安', 'hobby': '读书'}
①dict["key的值"]
执行:
print(dict1["hobby"])
输出:
读书
②dict.get("key的值")
执行:
print(dict1.get("hobby"))
输出:
读书
四.练习
1.如果字典dict1中key=hobby,value=book 输出:爱好是读书
dict1={"name":"tang","age":20,"hobby":"book","weight":120,"city":"xian"}
执行:
for key,value in dict1.items(): if key=="hobby" and value=="book": print("爱好是读书")
输出:
爱好是读书
2.复杂字典的取值:取出“Selenium3自动化测试实战”
data={ "datas": [ { "author": "wuya", "done": True, "id": 1, "name": "Python接口自动化测试实战" }, { "author": "无涯", "done": False, "id": 2, "name": "Selenium3自动化测试实战" } ], "msg": "ok", "status": 0 }
执行:
print(data["datas"][1]["name"])
或者
print(data.get("datas")[1].get("name"))
输出:
Selenium3自动化测试实战
3.输出的结果为:Go,Python,Java
data=["language",{"语言":["Go","Python","Java"]}]
执行:
print(",".join(data[1]["语言"]))
输出:
Go,Python,Java
4.对学生成绩进行从低到高排序
data1={"status":0,"datas":[ {"name":"lisi","score":90}, {"name":"wangmazi","score":88}, {"name":"wangwu","score":60}, {"name":"zhaosi","score":59}, {"name":"zhaosi","score":29} ]}
执行:
data2=[] #定义一个列表data2 for a in data1["datas"]: #循环展示字典data1中key——datas的value值 data2.append(a["score"]) #添加字典data1中key——datas的value值到列表data2中 data2.sort() #对列表data2中的值进行排序 print(data2) #输出data2中的值
输出:
[29, 59, 60, 88, 90]
5.输出:lisi,wangmazi,wangwu,zhaosi
data2={"status":0,"datas":[ {"name":"lisi","score":90}, {"name":"wangmazi","score":88}, {"name":"wangwu","score":60}, {"name":"zhaosi","score":59} ]}
执行
data3=[] #定义一个列表data3 for a in data2["datas"]: #循环展示字典data2中key——datas的value值 data3.append(a["name"]) #添加字典data2中key——datas的value值到列表data3中 print(",".join(data3)) #把列表data3中元素与“,”连接并输出
输出:
lisi,wangmazi,wangwu,zhaosi