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类型(字符串、数字、列表、字典等),

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

  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/MuMuyom/p/10631377.html
Copyright © 2011-2022 走看看