• 数据类型(字典)


    字典{ }

    字典是一种key-value的数据类型

    定义:{key1:value1,key2:value2}

    1、键与值用冒号“:”分开;
    2、项与项用逗号“,”分开;
    info = {
        "stu1101":"jack",
        "stu1102":"lily",
        "stu1103":"peiqi"
    }

    特性:

    1.key-value结构
    2.key必须可hash、且必须为不可变数据类型、必须唯一,不能重复
    3.可存放任意多个值、可修改、可以不唯一
    4.无序
    5.查找速度快

    只有当元组内的所有元素都为不可变类型的时候,才能成为字典的key

    常见操作

    创建

     dic.keys() 返回一个包含字典所有KEY的列表  

     dic.values() 返回一个包含字典所有value的列表   

     dic.items() 返回一个包含所有(键,值)元祖的列表

     dic.iteritems()、dic.iterkeys()、dic.itervalues() 与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表

    info = {
        "1101":"小萌",
        "1102":"小智",
        "1103":"小强"
    }
    

    增加

    dic.['new_key'] = 'value'

    dic.setdefault( key, None),如果字典中不存在key键,由dic.[key] = default 为他赋值

    info = {
        "1101":"小萌",
        "1102":"小智",
        "1103":"小强"
    }
    info["1104"] = "小王"#增加原字典中没有的key
    print (info)
    

      输出

    {'1101': '小萌', '1102': '小智', '1103': '小强', '1104': '小王'}

    修改

    增加新键/值对,修改或删除已有键/值

    dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值

    dic.update(dic2)将字典dic2的键值对添加到字典dic中

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王'
    }
    info["1103"] = "小张"#对制定key重新赋值
    print (info)
    

      输出

    {'1101': '小萌', '1102': '小智', '1103': '小张', '1104': '小王'}

    查找

    dict.get(key, default = None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)

    dic["key"],返回字典中key对应的值,若key不存在字典中,则报错

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王'
    }
    print(info.get("1102"))#获取指定key,对应的值
    print(info.get("1108"))#获取指定key,对应的值,若没有返回None
    print(info["1103"])#获取 没有会报错

     输出

    info = {
    "1101": "小萌",
    "1102": "小智",
    "1103": "小强",
    '1104': '小王'
    }

    删除 

    dic.pop(key[,default]) 和get方法相似。如果字典中存在key,删除并返回key对应的vuale;如果key不存在,且没有给出default的值,则引发keyerror异常;     

    dic.clear() 删除字典中的所有项或元素;

    dic.poitem())#随机删除一个,好像默认删除最后一个

    del dic[ ] #删除指定键值

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王',
        '1105': '小刘',
        "1106": "lily"
    }
    print(info.pop("1102"))#删除指定key和对应的值
    print(info)#获取指定key,对应的值,若没有返回None
    print(info.popitem())#随机删除一个,好像默认删除最后一个
    del info["1106"]#删除指定键值
    info.clear()#删除字典中的所有
    print(info)
    

      输出

    小智
    {'1101': '小萌', '1103': '小强', '1104': '小王'}
    {}

    判断

    “key” in dic #判断某key是否在字典里

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王'
    }
    print("1102" in info)#判断某key是否在字典里

    循环

    for k in dic.keys()#循环字典key

    for k,v in dic.items() #循环字典key和value

    for k in dic #循环字典key

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王'
    }
    for k in info.keys():  # 循环字典key
        print("@", k)
    for k, v in info.items():  # 循环字典key和value
        print(k, v, "-")
    for k in info:  # 循环字典key
        print("!", k)
    for k in info:#循环key和值 ,
        print(k, info[k])    

      输出

    @ 1101
    @ 1102
    @ 1103
    @ 1104
    1101 小萌 -
    1102 小智 -
    1103 小强 -
    1104 小王 -
    ! 1101
    ! 1102
    ! 1103
    ! 1104
    1101 小萌
    1102 小智
    1103 小强
    1104 小王

    长度

    len(dic) 

    info = {
        "1101": "小萌",
        "1102": "小智",
        "1103": "小强",
        '1104': '小王'
    }
    print(len(info))
    

      输出

    4

    多级字典嵌套

    info = {
        "大学":{
            "1001": ["lily",22],
            "1002": ["peiqi",23],
            "1003": ["jack",24],
            "1004":["jerry",23]
        },
        "中学":{
            "2001":["nicole",16]
        },
        "小学":{
            "3001":["angel","9"]
        }
    }
    info["小学"]["3001"][1] += ",friend"
    print(info["小学"]["3001"])
    

      输出:

    ['angel', '9,friend']

    dic.values() #打印所有value

    dic.keys() #打印所有key

    dic.items()#把字典转成列表,把键和值转为元组

    dic.update()#扩展 把两个字典合成一个。若有相同key,有对应值覆盖,没有创建

    dic.setdefault()#如果有这个key,保留原值,如果没有,就创建

    dic.fromcase()#生成字典,批量生成

  • 相关阅读:
    使用babel插件集
    使用babel
    webpack基本配置
    vue-router参数传递
    路由(二) router-link的使用
    路由使用(一)
    获取DOM
    父组件传递值给子组件(一)
    定义全局组件
    Windows下更改MySQL数据库的存储位置
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9496939.html
Copyright © 2020-2023  润新知