字典

一.字典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

 

上一篇:PetaPoco 5.1.306 的生成模板加注释


下一篇:4、python内置数据结构---字符串、列表、元组、集合、字典