zoukankan      html  css  js  c++  java
  • python之字典及其方法---整理集

    字典

    特点:
    使用逗号分隔的key:value形式;
    使用大括号括起来;
    key-value的键值对中,value部分可以是任意类型;
    列表、字典不能做为字典的key;
    字典是无序的,哪个key-value作为第一个非固定;

    #因为字典中的元素是无序的,所以需要取字典的值的时候就得用key

    info={"k1":18,"k2":100,2:"abc"}
    v=info["k1"]
    print(v)
    返回结果:
    18
    
    info={"k1":18,"k2":100,2:"abc"}
    v=info[2]
    print(v)
    返回结果:
    abc

    #复杂字典的取值

    info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
    v=info['k3'][3]["kk1"]
    print(v)
    返回结果:
    vv1
    
    info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
    v=info["k3"][3]["kk3"][1]
    print(v)
    返回结果:
    22

    #字典的删除

    info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
    del info["k1"]
    print(info)
    返回结果:
    {'k3': [11, 22, 33, {'kk3': (11, 22), 'kk1': 'vv1', 'kk2': 'vv2'}], 2: True}
    
    info={"k1":19,2:True,"k3":[11,22,33,{"kk1":"vv1","kk2":"vv2","kk3":(11,22,)}]}
    del info["k3"][3]["kk1"]
    print(info)
    返回结果:
    {2: True, 'k3': [11, 22, 33, {'kk2': 'vv2', 'kk3': (11, 22)}], 'k1': 19}

    #对字典做for循环的时候,默认循环它的key

    info={"k1":10,2:True,"k3":20,"k4":"abc"}
    for item in info:
        print(item)
    返回结果:
    k1
    2
    k3
    k4

    注意点:
    #如果字典中有相同的key名称,则只保留一个而且只保留最后一个

    info={"k1":123,"k2":222,"k1":999}
    print(info)
    返回结果:
    {'k1': 999, 'k2': 222}

    #True为key与1为key时的情况
    #同样,只保留最后一个

    info={1:123,"k1":"abc",True:999}
    print(info)
    返回结果:
    {1: 999, 'k1': 'abc'}
    
    info={True:"sss","k1":"abc",1:123,"k2":777}
    print(info)
    返回结果:            #只保留最后一个,如果key的值为1则转换为True
    {True: 123, 'k2': 777, 'k1': 'abc'}

    #上面把True转换为1的情况是当有个1为key的情况,如果单独只有True作为key,则不转换

    info={"k1":"abc",True:"sss","k2":777}
    print(info)
    返回结果:
    {True: 'sss', 'k2': 777, 'k1': 'abc'}

    #同样的道理,当False作为key的时候,也一样

    info={0:"abc",True:"sss","k2":777,False:"KKK"}
    print(info)
    返回结果:
    {0: 'KKK', True: 'sss', 'k2': 777}
    
    info={2:"abc",True:"sss","k2":777,False:"KKK"}
    print(info)
    返回结果:
    {False: 'KKK', True: 'sss', 2: 'abc', 'k2': 777}

    #######字典的方法#######
    1.clear()方法:移除字典中的所有元素

    2.copy()方法:字典浅拷贝

    3.fromkeys()方法:根据序列创建字典,并指定统一的值
    第1参数传入一个序列,把序列的每一个元素当作key来生成一个字典,
    而字典的value就是第2个参数的值
    格式:
    dict.fromkeys(<参数1>[,<参数2>])
    静态方法,调用时使用:
      dict.fromkeys()

    举例:只传入一个参数,生成一个字典,没有value
    v=dict.fromkeys(["k1",123,"999"])
    print(v)
    返回结果:
    {123: None, '999': None, 'k1': None}
    
    v=dict.fromkeys(["k1","k2","999"],123)
    print(v)
    返回结果:
    {'999': 123, 'k1': 123, 'k2': 123}

    4.get()方法:取得字典的值,比使用索引的方式更方法、灵活
    格式:
        get(<key>[,<参数2>])
    使用过程:给定key,则向字典中取得key对应的value
    如果给定的key在字典并不存在,则默认返回None
    如果给定的key在字典并不存在,同时设置了参数2,则返回参数2

    举例:正常情况取值
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.get("k1")
    print(v)
    返回结果:
    v1
    
    #给定一个并不存在的key
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.get("k111")
    print(v)
    返回结果:
    None
    
    #给定一个不存在的key,返回自定义的消息
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.get("k111","the key is invalid")
    print(v)
    返回结果:
    the key is invalid

    5.pop()方法:移除字典中指定key的value,同时可以返回删除的值,如果指定的key不存在则可以设置返回值
    格式:
        D.pop(<key>[,value])

    举例:删除key对应的value,并且返回删除的value
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.pop("k1")
    print(dic,v)
    返回结果:
    {'k3': 'UUU', 'k2': 123} v1
    
    #删除key对应的value,如果key不存在,则自定义返回值
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.pop("k2222",404)
    print(v)
    返回结果:
    404

    6.popitem()方法:随机从字典中删除key-value键值对,这个key-value以元组的形式,可以传给变量
    格式:
        D.popitem()

    举例:
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.popitem()
    print(v)
    返回结果:
    ('k1', 'v1')
    
    #可以把删除的key-value传递给2个变量
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v1,v2=dic.popitem()
    print(v1,v2)
    返回结果:
    k3 UUU

    7.setdefault()方法:给字典设置key-value,仅当key并不存在时才有效,并且返回值是value
    格式:
        D.setdefault(<key>,<value>)

    举例:仅当key在字典中不存在时才生效
    #key存在,无效果
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.setdefault("k1","hello")
    print(dic,v)
    返回结果:
    {'k3': 'UUU', 'k1': 'v1', 'k2': 123} v1
    
    #key不存在时,方法才有效
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    v=dic.setdefault("k2222","hello")
    print(dic,v)
    返回结果:
    {'k3': 'UUU', 'k2': 123, 'k2222': 'hello', 'k1': 'v1'} hello

    8.update()方法:更新key对应的value值,如果key并不存在,则添加到字典中
    格式1:
        D.update({key1:value1,key2:value2,...})
    格式2:
        D.update(key1=value1,key2=value2,...)

    举例:
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    dic.update({"k1":999,"k333":"hello"})
    print(dic)
    返回结果:
    {'k3': 'UUU', 'k333': 'hello', 'k2': 123, 'k1': 999}
    
    dic={"k1":"v1","k2":123,"k3":"UUU"}
    dic.update(k1=999,k333="hello")
    print(dic)
    返回结果:
    {'k3': 'UUU', 'k2': 123, 'k333': 'hello', 'k1': 999}

    9.keys()方法:配合for循环得到字典的key
    for item in info.keys():
      print(item)

    10.values()方法:配合for循环得到字典的value

    info={"k1":10,2:True,"k3":20,"k4":"abc"}
    for item in info.values():
    print(items)
    返回结果:
    10
    abc
    True
    20

    11items()方法:可以获取到key-value键值对

    #注意,获取到的是key-value,那么循环的时候就需要2个变量接收

    info={"k1":10,2:True,"k3":20,"k4":"abc"}
    for k,v in info.items():
    print(k,v)
    返回结果:
    2 True
    k4 abc
    k1 10
    k3 20

     

  • 相关阅读:
    Java异常简介
    mysql索引
    关于this问题
    Centos 7 安装jdk1.7
    Java 将html导出word格式
    tomcat生成ssl证书
    数据库连接池的作用
    jquery的异步获取返回值为中文时乱码解决方法
    JQuery中ajax跨域问题
    JAVA 非对称加密算法RSA
  • 原文地址:https://www.cnblogs.com/Kumanon/p/10380807.html
Copyright © 2011-2022 走看看