zoukankan      html  css  js  c++  java
  • 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', '三元桥一号院')
  • 相关阅读:
    ORACLE字符串函数
    Ubuntu14.04安装wineqq国际版
    phonegap学习笔记
    Android Studio 1.5.1
    CodeBlocks+Qt(MinGW)配置
    Java多线程之synchronized(五)
    Java多线程之synchronized(四)
    Java多线程之synchronized(三)
    Java多线程之synchronized(二)
    Java多线程之synchronized(一)
  • 原文地址:https://www.cnblogs.com/chushujin/p/12838121.html
Copyright © 2011-2022 走看看