• Python3-2020-测试开发-8- 字典dict


    一、字典的特点

    """
    
    字典:通过键对象,获取对应的值
    
    特点:“键”是任意不可变数据,比如:整数,浮点数,字符串,元组
    但是:列表、字典,集合这些可变对象,不能作为键使用,并且“键”不能重复
    """

    二、字典的创建

    2.1 第一种方式

    # 第一种方式
    a1 = {'name':'chu','age':18,'job':'teacher'}
    print(a1)    # {'name': 'chu', 'age': 18, 'job': 'teacher'}

    2.2 第二种方式

    # 第二种方式
    a2 = dict(name= 'chu',age=18)
    print(a2)    # {'name': 'chu', 'age': 18}

    2.3 第三种方式

    # 第三种方式
    a3 = [('name','chu'),('age',18)]
    print(dict(a3))   # {'name': 'chu', 'age': 18}

    2.4 第四种方式zip()

    # 第四种方式zip()
    k = ['name','age','job']
    v = ['chu',18,'teacher']
    a4 = dict(zip(k,v))
    print(a4)   # {'name': 'chu', 'age': 18, 'job': 'teacher'}

    2.5 通过fromkeys()创建值为空的字典

    # 通过fromkeys()创建值为空的字典
    a5 = dict.fromkeys(['name','age','job'])
    print(a5)     # {'name': None, 'age': None, 'job': None}

    三、字典的创建

    b1 = {'name':'chu','age':18,'job':'teacher'}

    3.1 一般访问,键不存在时,报错

    # 3.1 一般访问,键不存在时,报错
    print(b1['name'])    # chu
    # print(b1['aaaaa'])   # KeyError: 'aaaaa'

    3.2 通过get()访问,键不存在时,默认返回None,也可自定义返回值

    # 3.2 通过get()访问,键不存在时,默认返回None,也可自定义返回值
    print(b1.get('name'))    # chu
    print(b1.get('aaaa'))    # None
    print(b1.get('aaaa',"此键不存在!"))   # 此键不存在!

    3.3 列出所有的键值对 items()

    # 3.3 列出所有的键值对 items()
    print(b1.items())     # dict_items([('name', 'chu'), ('age', 18), ('job', 'teacher')])

    3.4 列出所有的键keys(),值values()

    # 3.4 列出所有的键keys(),值values()
    print(b1.keys())     # dict_keys(['name', 'age', 'job'])
    print(b1.values())   # dict_values(['chu', 18, 'teacher'])

    3.5 len() 字典中有多少个键值对

    # 3.5 len() 字典中有多少个键值对
    
    print(len(b1))  # 3

     3.6 检测一个“键”是否存在于字典中

    # 3.6 检测一个“键”是否存在于字典中
    
    print("name" in b1)   # True

    四、字典元素的添加,修改,删除

     4.1 添加,如果添加的键存在,则会覆盖旧的键,如果不存在,新增键值对

    # 4.1 添加,如果添加的键存在,则会覆盖旧的键,如果不存在,新增键值对
    print("------------------------添加,修改,删除------------------------------")
    b2 = {'name':'chu','age':18,'job':'teacher'}
    b2["address"] = "三元桥一号院"
    print(b2)      # {'name': 'chu', 'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}
    b2["name"] = "baobao"
    print(b2)    # {'name': 'baobao', 'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}

    4.2 update() 将新字典中的的所有键值对全部添加到旧的字典中,如果key重复,则直接覆盖

    # 4.2 update() 将新字典中的的所有键值对全部添加到旧的字典中,如果key重复,则直接覆盖
    x1 = {'name':'chu','age':18,'job':'teacher'}
    x2 = {'name1':'chu','age1':18,'job':'teacher01'}
    x1.update(x2)
    print(x1)       # {'name': 'chu', 'age': 18, 'job': 'teacher01', 'name1': 'chu', 'age1': 18}
    print(x2)       # {'name1': 'chu', 'age1': 18, 'job': 'teacher01'}

    4.3 del():删除字典中的值   pop(): 删除字典中的值并将值返回   clear():清空字典   popitem():随机删除和返回该键键值对

    # 4.3 del():删除字典中的值   pop(): 删除字典中的值并将值返回   clear():清空字典   popitem():随机删除和返回该键键值对
    
    b3 = {'name': 'chu', 'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}
    del(b3['name'])
    print(b3)       # {'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}
    
    bb = b3.pop('age')
    print(b3)   #  {'job': 'teacher', 'address': '三元桥一号院'}
    print(bb)   # 18
    b4 = {'name': 'chu', 'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}
    
    print(b4.popitem())    # ('address', '三元桥一号院')
    print(b4.popitem())    # ('job', 'teacher')
    print(b4.popitem())    # ('age', 18)
    print(b4.popitem())    # ('name', 'chu')
    # print(b4.popitem())    # KeyError: 'popitem(): dictionary is empty'

    五、序列解包

    5.1 序列解包

    # 5.1 序列解包
    a,b,c = 10,20,30
    a1,b1,c1 = (20,30,40)
    (a2,b2,c2) = (40,50,60)
    [a3,b3,c3] = [1,2,3]
    print(a,b,c)    # 10 20 30
    print(a1,b1,c1) # 20 30 40
    print(a2,b2,c2) # 40 50 60
    print(a3,b3,c3) # 1 2 3

     5.2 字典的序列解包时,默认是对键进行操作
           如果对值进行操作,x.values()
           如果对键值对进行操作,x.items()

    # 5.2 字典的序列解包时,默认是对键进行操作
    # 如果对值进行操作,x.values()
    # 如果对键值对进行操作,x.items()
    
    b5 = {'name': 'chu', 'age': 18, 'job': 'teacher', 'address': '三元桥一号院'}
    
    x,y,z,o = b5
    print(x,y,z,o)    # name age job address
    
    x1,y1,z1,o1 = b5.values()
    print(x1,y1,z1,o1) # chu 18 teacher 三元桥一号院
    
    x2,y2,z2,o2 = b5.items()
    print(x2,y2,z2,o2) # ('name', 'chu') ('age', 18) ('job', 'teacher') ('address', '三元桥一号院')
  • 相关阅读:
    JavaWeb--HttpSession案例
    codeforces B. Balls Game 解题报告
    hdu 1711 Number Sequence 解题报告
    codeforces B. Online Meeting 解题报告
    ZOJ 3706 Break Standard Weight 解题报告
    codeforces C. Magic Formulas 解题报告
    codeforces B. Sereja and Mirroring 解题报告
    zoj 1109 Language of FatMouse 解题报告
    hdu 1361.Parencodings 解题报告
    hdu 1004 Let the Balloon Rise 解题报告
  • 原文地址:https://www.cnblogs.com/chushujin/p/12838121.html
Copyright © 2020-2023  润新知