zoukankan      html  css  js  c++  java
  • Python字典常用的操作

    1、数据类型

      不可变数据类型:元组、bool、int、str

      可变数据类型:list、dict、set

      字典中,键key只能是不可变数据类型,而值value可为任意数据类型。

     

    2、dict常用操作

    dic1 = {'age': 18, 'name': 'mumu', 'sex': 'male'}

    增:

    dic1['height'] = 170
    dic1['age'] = 20
    # 没有此键值对时,则添加(增),有此键值对时,则覆盖(改)
    
    dic1.setdefault('weight', 140)  # value不填时,默认为None
    # 有此key时,键值对不改变,无此key时,则添加(增)
    print(dic1) # {'age': 20, 'name': 'mumu', 'sex': 'male', 'height': 170, 'weight': 140}

    删:

    dic1.pop('age')  # 删除'age'键值对,有返回值,为value,此处为20
    dic1.pop('mumu', '不存在此键')  # 添加一个返回值,防止不存在此key而报错,此处返回值为字符串‘不存在此键’
    # 常用于不知道是否存在key的情况,防止程序报错而停止运行
    
    dic1.popitem()  # 随机删,删除键值对,返回元组
    dic1.clear()  # 清空字典
    
    # del dic1['name']  # 删除name键值对,但不存在时会报错
    # del dic1  # 删除字典

    改:

    dic1['age'] = 24  # 改法一
    
    dic = {'name': 'mumu', 'age': 18, 'height': 170}
    dic2 = {'name': 'mu', 'age': 20, 'sex': 'male'}
    dic2.update(dic)  # {'name': 'mumu', 'age': 18, 'sex': 'male', 'height': 170}
    # dic添加和覆盖到dic2上,有则覆盖,无则添加 

    查:

    dic.keys()  # 所有的键,返回值为列表
    dic.values()  # 所有的值,返回值为列表
    dic.items()  # 所有的键值对,返回值为包含元组的列表,一个键值对为一个元组
    
    # for循环逐个查看
    for i in dic:  # 只写dic时,默认查看key,故此处用dic.keys()时,结果一样
        print(i)  # 循环打印key
    for i in dic.values():
        print(i)  # 循环打印value
    for i in dic.items():
        print(i)  # 循环打印键值对,显示为元组,如:('name','mumu')
    for k, v in dic.items():
        print(k, v)  # 循环打印键值对,键、值独立
    
    # print(dic['key'])  # 没有此key则会报错
    print(dic.get('key', '无此键'))  # 无key时,返回值为字符串'无此键'

     

    3、嵌套

    dic = {
        'name': ['mumu', '怪大叔', 'Superman'],
        'pyStudy': {
            'time': '16:00',
            'date': '3.31',
            'who': 'mu'},
        'age': 21
    }
    
    dic['name'].append('mu哥')  # 把'mu哥'添加到name中,此处对应value为列表
    dic['name'][0] = dic['name'][0].upper()  # 大写mumu
    
    dic['pyStudy']['how_long'] = 3  # 添加键值对到pyStudy,此处对应value为字典
    

      在对嵌套型字典进行操作时,

      首先找要操作的key,确定对应的value类型(字符串、数字、列表、字典等),

      再根据对应的类型,选择合适的操作方式(不同类型一般不同)

  • 相关阅读:
    Java学习笔记 -StringBuffer & StringBuilder
    Java学习笔记
    java学习笔记 -数组
    关于运放采集电路如何自动切换量程电路
    仪器仪表运放的放大倍数的一些问题
    二极管、三极管和mos管使用总结
    mos管缓启动和防反接电路原理
    关于产生负电源电路
    可靠性测试之画pcb
    AD软件pcb电路板各图层的理解
  • 原文地址:https://www.cnblogs.com/MuMuyom/p/10631377.html
Copyright © 2011-2022 走看看