• Python之字典


    Python之字典

      字典是Python中,唯一具有映射关系的数据类型。

      字典的查询效率高于列表。

      字典的复杂度为1,列表的复杂度对N。但是,字典的存储大于列表。

    特性:无序

    用来存储详细信息: 

    存储方式:  key:value

           键  :值

    通过键,找到值。用大括号 “ { } ” 表示。键是唯一且不可变数据类型。

    name = { 'key' : ' value' }

    字典里可以套字典,将值在写为字典就好了。

    name = {
        11111:{"name":"George","age":26},
        22222:{"name":'wang',"age":27}  
    }

    字典的取值:在字典的名字中加键就好了。name [ key ] ,如果值也是字典,而有需要去值里字典的值,就name [ key ] [ key ]......就好。

    name = {
        11111:{"name":"George","age":26},
        22222:{"name":'wang',"age":27}
    }
    
    print(name[11111])
    print(name[11111]["name"])

    字典里面也可以有列表:

    name = {
        11111:{"name":"George","age":26},
        22222:{"name":'wang',"age":27},
        33333:["hahaha"],
    }

    改操作:

    name[11111]["name"] = "John"   #改字典的值
    name[33333][0] = "aaa"   #改列表的值

    插入:

    name[444] = "mike"
    name[555] = {"mike":22}
    print(name)

    update,更新

    name1 = {
        111:{"name":"aa"},
        222:{"name":"bb"},
        333:{"name":"cc"},
    }
    
    name2 = {
        111:{"name":"dd"}
       444:{"name":"gg"} } name1.update(name2)
    #实质是将两个字典合并 print(name1) ------------结果---------- {111: {'name': 'dd'}, 222: {'name': 'bb'}, 333: {'name': 'cc'},444:{'name':'gg'}}

    增操作:

    name[33333][0] = "aaa"
    name[33333].append(26)
    print(name)
    {11111: {'name': 'George', 'age': 26}, 22222: {'name': 'wang', 'age': 27}, 33333: ['aaa', 26]}

    删操作:

    pop

    print(name.pop(33333))   #删掉指定的key,并返回相应的值
    print(name)
    ['hahaha']     #返回key相应的值
    {11111: {'name': 'George', 'age': 26}, 22222: {'name': 'wang', 'age': 27}}

    如果key不存在,报错。如果不想报错,就赋予一个默认值None

    print(name.pop(55555,None))   #删掉指定的key,并返回相应的值
    print(name)
    
    ---------结果---------
    None
    {11111: {'name': 'George', 'age': 26}, 22222: {'name': 'wang', 'age': 27}, 33333: ['hahaha']}

    popitem 随机删除

    print(name.popitem())    #随机删除,并返回删的值
    ---------结果---------
    (33333, ['hahaha'])

    del name [ key ]

    del name[ 33333 ]

    查操作:

    print(name)   #查所有
    print(name[33333])   #查指定的
    print(name.get(11111)) #推荐用get
    print(name.get(4))
    print(1111 in name)   #判断是否在字典里有这个key
    print(name.key())
    print(name.value())

    字典循环:

    for i in name:
        print(i,name[i])
    
    ------------结果----------
    11111 {'name': 'George', 'age': 26}
    22222 {'name': 'wang', 'age': 27}
    33333 ['hahaha']
    for k,v in name.items():    # 不要用,因为效率低
        print(k,v)
    ----------结果----------
    11111 {'name': 'George', 'age': 26}
    22222 {'name': 'wang', 'age': 27}
    33333 ['hahaha']
    for i in name.items():
        print(i)
    -------------结果--------
    (11111, {'name': 'George', 'age': 26})
    (22222, {'name': 'wang', 'age': 27})
    (33333, ['hahaha'])
    结果的值有小括号

    fromkeys:初始化一个字典

    info ={}
    
    info = info.fromkeys([1,2,3],"Tesla")  #创建字典,并将value的值设为Tesla,也可以不写,默认是None。
    print(info)
    
    ----------结果-----------
    {1: 'Tesla', 2: 'Tesla', 3: 'Tesla'}
  • 相关阅读:
    Elasticsearch排序与相关性
    Elasticsearch请求体查询
    编码问题
    Mybatis
    Spring Framework
    线上的一些坑记录
    【小程序】---- 实现授权与登录的基本流程
    【小程序】---- 封装请求
    【小程序】---- 自定义数字键盘拨号
    不为人知的网络编程(十二):彻底搞懂TCP协议层的KeepAlive保活机制
  • 原文地址:https://www.cnblogs.com/george92/p/8969550.html
Copyright © 2020-2023  润新知