• day 12 字典的魔法


    字典 dict

    注意:K值相同的时候,只能保留一个

    1、基本机构
    info = {
        "k1": "v1", # 键值对
        "k2": "v2"
    }
    2 字典的value可以是任何值
    info = {
        "k1": 18,
        "k2": True,
        "k3": [
            11,
            22,
            33,
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        "k4": (11,22,33,44)
    }
    print(info)

    3 布尔值(1,0)、列表、字典不能作为字典的key

    info ={
        1: 'asdf',
        "k1": 'asdf',
        True: "123",
        # [11,22]: 123   列表不可以作为key
        (11,22): 123,    元组可以,因为元组不可以被修改
        # {'k1':'v1'}: 123   字典也不可以作为key
    
    }
    print(info)

    4,字典是无序的

    info = {
        "k1": 18,
        "k2": True,
        "k3": [
            11,
            [],
            (),
            22,
            33,
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        "k4": (11,22,33,44)
    }
    print(info)
     

    5、索引方式找到指定元素,不能通过切片找(因为是无序的)



    info = {
        "k1": 18,
        2: True,
        "k3": [
            11,
            [],
            (),
            22,
            33,
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        "k4": (11,22,33,44)
    }
    # v = info['k1']
    # print(v)
    # v = info[2]
    # print(v)
    v = info['k3'][5]['kk3'][0]
    print(v)
    
    

    6 字典支持 del 删除

    info = {
        "k1": 18,
        2: True,
        "k3": [
            11,
            [],
            (),
            22,
            33,
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        "k4": (11,22,33,44)
    }
    del info['k1']
    
    del info['k3'][5]['kk1']
    print(info)

    7,for循环

    info = {
        "k1": 18,
        2: True,
        "k3": [
            11,
            [],
            (),
            22,
            33,
            {
                'kk1': 'vv1',
                'kk2': 'vv2',
                'kk3': (11,22),
            }
        ],
        "k4": (11,22,33,44)
    }

    for item in info: 默认for循环的时候只有key print(item)


    for item in info.keys(): 获取字典中的key print(item) for item in info.values(): 获取字典中的values print(item) for item in info.keys(): 键值对取出来 print(item,info[item]) for k,v in info.items(): 把键值对都取出来,优化的方法 print(k,v)
    True 1  False 0
    info ={
        "k1": 'asdf',
        True: "123",
        # [11,22]: 123
        (11,22): 123,
        # {'k1':' v1'}: 123
    
    }
    print(info)

    #######################################字典的方法############################################################

    1,clear

    2,copy 浅拷贝

    3、根据序列,创建字典,并指定统一的值

    dictdic = {    "k1": 'v1',    "k2": 'v2' }1 根据序列,创建字典,并指定统一的值v = dict.fromkeys(["k1",123,"999"],123)   第一个值作为key  第二个值作为valueprint(v)

    4,get     

    根据Key获取值,key不存在时,可以指定默认值(None)

    # 2 根据Key获取值,key不存在时,可以指定默认值(None)
    # v = dic['k11111']  如果我的key不存在,会执行报错
    # print(v)


    # v = dic.get('k1',111111) 如果取得key不存在,默认把111111给他,如果存在,11111直接忽略。这个要记清楚 # print(v)

    5,items

    6.keys

    7,vlaus

    8,

    # 3 删除并获取值
    # dic = {
    #     "k1": 'v1',
    #     "k2": 'v2'
    # }
    v = dic.pop('k1')    删除k1的值,指定k值删除。
    
    # v = dic.pop('k1',90)   当key不存在的事,移除不了,但是会返回默认值90
    # print(dic,v)
    
    
    # k,v = dic.popitem()  在字典中随机删除,并且取到
    # print(dic,k,v)

    9,setdefault  设置值

    # 4 设置值,
    # 已存在,不设置,获取当前key对应的值
    # 不存在,设置,获取当前key对应的值
    # dic = {
    #     "k1": 'v1',
    #     "k2": 'v2'
    # }
    # v = dic.setdefault('k1111','123')
    # print(dic,v)

    10 更新

    已经存在的覆盖上去

    不存在的,更新上去

    5 更新
    dic = {
        "k1": 'v1',
        "k2": 'v2'
    }
    # dic.update({'k1': '111111','k3': 123})  第一种方法
    # print(dic)
    dic.update(k1=123,k3=345,k5="asdf")  第二种方法
    print(dic)





    # 6 keys() 7 values() 8 items() get update
    ##########



  • 相关阅读:
    proxmox新版本使用了lxc容器,导致以前的vzlist命令无法使用,于是自己写了一个脚本来获取所有半虚拟化主机的信息状态
    Linux 系统优化参数总结
    linux shell 远程执行命令
    wios设置证书登陆
    Eclipse安装tomcat插件
    Centos6.5-dnsmasq安装
    SSL工作原理
    ssh免密码登陆及其原理
    Linux查看后台任务,关闭后台任务
    Mybatis 中常用的java类型与jdbc类型
  • 原文地址:https://www.cnblogs.com/xiaomai-rhce/p/10085547.html
Copyright © 2020-2023  润新知