zoukankan      html  css  js  c++  java
  • python中的字典以及相关操作

    字典

    基本概述:

      字典用大括号{}括起来,内部使用key:value 来保存数据

      例如{"Jay":"周杰伦","eason":"陈奕迅","JJ","林俊杰"}

      字典的key是固定的,不可变的,就是说key可哈希,value则没有限制

      key具有不等性,就是一个字典中的key不允许有相同的

      字典的保存顺序不是按照我们自己的意愿来的,也可以认为是无序的

      字典也可以进行遍历,但遍历结果为key

    dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    for el in dic:
        print(el)

      打印结果为

    基本操作:

      增删改查

      增加:

        dict[一个不存在的key] = value, 表示把一个新的键值对加入到字典里,如果这个key已经存在,则会替换掉原来的key对应的value

        dict.setdefault(key,value), 表示加一个新的键值对到字典,如果这个key已经存在,则不再继续保存

    dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    dic["黑旋风"] = "李逵"
    dic["及时雨"] = "宋江老大"
    dic.setdefault("智多星","吴用")
    print(dic)

        执行结果为:

      删除:

        dict.pop(key), 删除key对应的键值对,返回的是key对应的value

        dict.popitem(), 随机删除一对键值对,返回的是元组(key,value)

        del dict[key], 删除key对应的键值对,有固定的格式

    dic = {"牌牌":"你去哪里了", "晓雪":"你快回来.", "雪雪": "又走了"}
    ret = dic.pop("晓雪") # 删除一个元素. 返回这个元素的value值
    print(ret)
    del dic["雪雪"]
    ret1 = dic.popitem() # 返回给你的是一个元组.
    print(ret1)

        执行结果为:

      修改:

        dict[已有的key] = 新value, 表示将原有字典中key对应的value修改为新的value

        dict1.update(dict2), 把dict2中的键值对更新到dict1中.如果dict2中的key已经在dict1中出现,那么将dict1中key对应的value替换为dict2中的,如果不存在,就添加一对键值对

    dic1 = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    dic2 = {"李晨": "范冰冰", "邓超": "孙俪", "王祖蓝": "李亚男"}
    dic1.update(dic2)
    print(dic1)

        执行结果为:

      查询:

        dict[key], 查询key对应的value,如果没有的话,报错

        dict.get(key,默认值), 查询key对应的value,如果没有的话,返回默认值,没有给默认值的情况下,返回None

        dict.setdefault(key,value), 首先判断字典中有没有这个key,如果没有的话,新增到字典中,如果有的话,用这个key去字典中查询,返回查询的结果

    dic = {"及时雨":"宋江", "易大师":"剑圣"}
    dic.setdefault("及时雨", "诺克萨斯")    # 可以帮我们添加
    print(dic)
    ret = dic.setdefault("及时雨123", "hello")
    print(ret)
    print(dic)

        执行结果为:

    常用方法:

      keys(),values()和items()

        dict.keys(), 拿到所有的key,返回key的集合,返回结果像是列表,但实际不是列表,但是可以执行列表的操作,并且可以进行迭代循环

        dict.values(), 拿到所有的value,返回value的集合,返回结果像是列表,但实际不是列表,但是可以执行列表的操作,并且可以进行迭代循环

        dict.items(), 拿到所有的键值对,返回结果像是列表,但里边的元素是元组

    dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    print(dic.keys())
    print(dic.values())
    print(dic.items())

      执行结果为:

    解构:

      a,b = (1,2)

      利用结构可以遍历dict

    1 dic = {"及时雨":"宋江", "易大师":"剑圣", "维恩":"暗影猎手"}
    2 print(dic.items())  
    3 for k, v in dic.items():
    4     print(k , v) 

      执行结果为:

    字典的嵌套:

      

    ic = {
        "name":"汪峰",
        "age": 58,
        "wife":{
            "name":"国际章",
            "salary": 180000,
            "age": 37
        },
        "children":[
            {"name":"老大", "age": 18},
            {"name":"老二", "age": 118}
        ]
    }
    print(dic["children"][1]["age"])    # 输出汪峰孩子老大的年纪
    
    print(dic["wife"]['salary'])     # 输出汪峰妻子的工资
  • 相关阅读:
    自制2048小游戏(附源码)
    PyQt5设计思路(长期更新,每写一篇新博客都会更新一次)
    Orthogonal table 实现理论
    Convex Hull 实现理论
    elasticsearch 命令操作
    Springboot
    2018/3/8错题解析
    初始MyBatis
    如何做好微信订阅号
    在路上,三线城市互联网创业记录
  • 原文地址:https://www.cnblogs.com/knowledgeYang/p/9274427.html
Copyright © 2011-2022 走看看