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', '三元桥一号院')
  • 相关阅读:
    leetcode 576. Out of Boundary Paths 、688. Knight Probability in Chessboard
    leetcode 129. Sum Root to Leaf Numbers
    leetcode 542. 01 Matrix 、663. Walls and Gates(lintcode) 、773. Sliding Puzzle 、803. Shortest Distance from All Buildings
    leetcode 402. Remove K Digits 、321. Create Maximum Number
    leetcode 139. Word Break 、140. Word Break II
    leetcode 329. Longest Increasing Path in a Matrix
    leetcode 334. Increasing Triplet Subsequence
    leetcode 403. Frog Jump
    android中webView加载H5,JS不能调用问题的解决
    通过nginx中转获取不到IP的问题解决
  • 原文地址:https://www.cnblogs.com/chushujin/p/12838121.html
Copyright © 2011-2022 走看看