zoukankan      html  css  js  c++  java
  • python课堂整理6---字典

    一、字典  dict

    info = {"k1" : "v1", "k2" : "v2"}
    

    以键值对形式组成字典

    字典里的value可以是任何值

    列表不能作为字典的key

    字典可以作为字典的key

    元组可以作为字典的key

    布尔值可以作为字典的key  但是重复的key只会显示一个,True容易和数字1重复,需注意!

    字典是无序的

    字典支持索引取值,但不支持切片

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

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

    注意:通过索引key值去找value的话,如果该key不存在,会报错。

    支持del删除

    del info['k1']
    

    支持for 循环

    1.输出所有keys

    info = {"k1": "v1", "k2": "v2"}
    for item in info.keys():
        print(item)
    

    2.输出所有values值

    info = {"k1": "v1", "k2": "v2"}
    for item in info.values():
        print(item)
    

    3. 同时输出keys和values:

    info = {"k1": "v1", "k2": "v2"}
    for item in info.keys():
        print(item, info[item])
    

    或(这个更重要)items 方法

    info = {"k1": "v1", "k2": "v2"}
    for k, v in info.items():
    print(k, v)

      

    二、字典的魔法

    1. 该方法和前面相同不再赘述:clear  copy (浅拷贝)

    2. 根据序列(可以是列表、元组、字符串等),创建字典,并指定统一的值

    v = dict.fromkeys(["k1", 123, "999"], "爱你")
    print(v)
    

    3. get方法,如果传入的key不存在,默认返回None,也可以指定返回值

    dic = {"k1": "v1"}
    v = dic.get("k1")
    v2 = dic.get("大白", "不存在")
    print(v, v2)
    

    4. pop删除,当要删除的key不存在时,返回指定内容

    dic = {"k1": "v1",
    "k2": "v2"
    }
    v1 = dic.pop("k1")
    v2 = dic.pop("k3", "不存在哦亲")
    print(dic)
    print(v1)
    print(v2)

    5. 随机删除一个,返回被删除的键和值

    dic = {"k1": "v1",
           "k2": "v2"
           }
    v = dic.popitem()
    print(dic, v)
    

    dic = {"k1": "v1",
           "k2": "v2"
           }
    k, v = dic.popitem()
    print(dic, k, v)
    

    6.设置值,如果已经存在,不设置,获取当前key对应的值

    如果不存在,设置,获取当前key对应的值

    dic = {"k1": "v1",
           "k2": "v2"
           }
    v = dic.setdefault("大白", "123")
    v2 = dic.setdefault("k1", "11111111")
    print(dic, v)
    print(dic, v2)
    

    7. 更新字典

    dic = {"k1": "v1",
           "k2": "v2"
           }
    dic.update({"k1": "11111", "k3": "liu"})
    print(dic)
    

    或者

    dic = {"k1": "v1",
           "k2": "v2"
           }
    dic.update(k1=123, k3 = 345)
    print(dic)
    

    重要:keys()  values()  items()  get  update

    补充:

    in dic 默认找的是key

    in dic.values() 能找到values

    dic = {"k1": "v1",
           "k2": "v2"
           }
    v = "k1" in dic
    v2 = "v1" in dic.values()
    print(v)
    print(v2)
    

    布尔值:在内存中就表现为0和1

    转换:bool(...)

    以下情况为假:None   ""   ()   []   {}  0   ====>False  

    一个奋斗中的产品小白
  • 相关阅读:
    mbedtls安装与入门【转】
    SpringAop代理对象调用过程(八)
    SpringAOP理解-代理对象创建(七)
    NIO与零拷贝
    NIO实现群聊系统
    SpringAOP概述(六)
    NIO简介以及三大组件(BufferChannelSelector)基本使用
    BIO基本介绍以及使用
    Netty简介
    Spring循环依赖解决(五)
  • 原文地址:https://www.cnblogs.com/dabai123/p/10962772.html
Copyright © 2011-2022 走看看