• 字典


      字典和字符串、列表是比较常用的数据类型,当记录一个学生的学习信息的时候,使用列表和字符串就不太方便了,很难取到一个具体的元素的值,这个时候使用字典就比较方便了,字典的方法也有许多,需要记住具体的使用格式。

    1.字典的定义

    使用{}里面的元素是一个Key对应一个Value,并且每一个元素需要用逗号隔开

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }

    2.查询字典value的值

    1)通过中括号进行取值

    格式为变量名[key]

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    print(info['name'])

    输出结果:

    xiaoming

    注意:字典中的key是不可以重复的

    2) 通过Get取值

    格式为变量名.get(key)

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    print(info.get('name'))

    print(info.get('add',"没有找到"))

    输出结果:

    Xiaoming

    没有找到

    注意:用中括号取值和get方法取值的区别 ,get方法获取不到key的时候,不会报错,中括号取值找不到key会报错,get方法还可以多传一个参数,如果get不到key的话,那么返回上传的参数,如果不写的话,默认get不到返回None

     

    3.新增字典中的key和value

    1) 使用中括号新增

    格式:变量名[key]=value

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info['addr']='河南'
    print(info)

    输出结果:

            {'age': 20, 'name': 'xiaoming', 'id': 1, 'addr': '河南', 'sex': 'nan'}

    2) 使用setdefault方法新增

    格式:变量名. Setdefault(key,value)

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info.setdefault('addr','河南')
    print(info)

    输出结果:

            {'age': 20, 'addr': '河南', 'sex': 'nan', 'id': 1, 'name': 'xiaoming'}

    4.修改字典中的value

    格式:变量名[key]=value

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info['name']='MLing'
    print(info)

    输出结果:

    {'sex': 'nan', 'id': 1, 'name': 'MLing', 'age': 20}

    注意:修改只有这一种方法,在有这个key的情况下那就是修改这个key的value,没有这个key的话,就是新增

     5.删除字典中的元素

    1) del方法

    格式:del 变量名[key]

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    del info['name']
    print(info)

    输出结果:

    {'sex': 'nan', 'age': 20, 'id': 1}

    注意:传出的key要是存在的,不然会报错的

    2) pop方法删除

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info.pop('name') #删除key以及它对应的value
    print (info.pop('sex')) #pop方法可以返回删除的value
    print(info)

    输出结果:

    nan

    {'age': 20, 'id': 1}

    注意:因为字典是无序的,所有需要传值,必须指定Key,且必须存在,不然会报错的,pop方法可以返回删除的key的value

    3) popitem()随机删除一个元素

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info.popitem()
    print(info)

    输出结果:

    {'id': 1, 'sex': 'nan', 'age': 20}

    注意:因为不确定删除的元素,所以这种方法会很少用

    4) clear方法-清空所有内容

    info = {
        'name':'xiaoming',
        'sex':'nan',
        'age':20,
        'id':1,
    }
    info.clear()
    print(info)

    输出结果:

      {}

     6.多层嵌套取值:

    1)取'car'中的'yellow'

    all  = [ {
        'car':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'name':"BMW"
           
    } ,
        'car1':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'country':"china"
           
    },
        'car2':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L"
           
    }
    }
    ]
    bb=all[0].get('car').get('moeny') #使用get取值
    aa=all[0]['car']['color'][1] #使用中括号取值,注意每个key需要有引号的
    print(aa,bb)

    7.常用方法

    1) Keys方法获取字典中所有的key

    all  =  {
        'car':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'name':"BMW"
            } ,
        'car1':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'country':"china"
            },
        'car2':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L"
            }
    }
    print(all.keys())

    输出结果:

      dict_keys(['car', 'car2', 'car1'])

    2) values方法获取字典中所有的values

    all  =  {
        'car':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'name':"BMW"
            } ,
        'car1':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L",
                'country':"china"
            },
        'car2':
            {
                'color':['red','yellow','black'],
                'moeny':1111111,
                'pailiang':"2.5L"
            }
    }
    print(all.values())

    输出结果:

      dict_values([{'name': 'BMW', 'color': ['red', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}, {'color': ['red', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}, {'country': 'china', 'color': ['re

    d', 'yellow', 'black'], 'pailiang': '2.5L', 'moeny': 1111111}])

    3) items方法循环字典中的key和value

    将字典中的数据,转换为一个列表,并将每个key和value放在一个元素中

    info2 = {
        'name':"hhh",
        'sex':'nan'
    }
    print(info2.items())

    返回结果:

    dict_items([('name', 'hhh'), ('sex', 'nan')])

    要取到key和value就需要对items方法返回的列表进行循环

    info2 = {
        'name':"hhh",
        'sex':'nan'
    }
    for k ,v in info2.items():
        print(k,v)

    返回结果:

    sex nan

    name hhh

    4) 直接循环字典进行取值

    info2 = {
        'name':"hhh",
        'sex':'nan'
    }
    for k in info2:
        print(k,info2[k])

    返回结果:

    sex nan

    name hhh

      因为items方法是需要先把字典转换为列表,之后在循环取里面的key和values,当数据量过大的时候,效率会比较低,由于字典循环的时候,是先循环的key,所以可以直接通过循环的key进行取value,这样效率会高很多

    5) Update方法将把两个字典合并到一起,如果有一样的key,那么更新value

    info1 = {
        'name':"hhh",
        'sex':'nan'
    }
    info2 = {
        'name':"哈哈",
        'sex':'女',
        'addr':'河南'
    }
    info1.update(info2)
    print(info1)

    输出结果:

      {'sex': '女', 'name': '哈哈', 'addr': '河南'}








  • 相关阅读:
    ElementUI表格表头自定义添加checkbox,点击不生效问题
    同步个人vs code 习惯性配置gists 到码云(Gitee)
    el-select 设置宽度自适应上层div
    vue-element-template模板vue-cli3本地使用proxy解决跨域问题
    vue-cli3用axios+proxy简单解决在dev开发环境下的跨域问题
    windows下EasyMock的安装与部署遇到的各种问题(爬坑)
    git同步代码至github和gitee(码云)
    Git使用总结(包含Git Bash和Git GUI的使用)
    Leetcode No.53 Maximum Subarray(c++实现)
    Leetcode No.35 Search Insert Position(c++实现)
  • 原文地址:https://www.cnblogs.com/MLing/p/6919279.html
Copyright © 2020-2023  润新知