zoukankan      html  css  js  c++  java
  • 字典dict的知识点

    ======================================基本使用======================================
    1、用途: 用来存方多个(不同种类的)值

    2、定义方式: 在{}内用逗号分隔开多个key:value的元素,其中value可以是任意数据类型,而key的功能通常是用来
    描述value的,所以key通常是字符串类型,但其实key必须是不可变的类型(intfloatstr uple)
    定义:d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict(....)
    d={0:'x',1.3:'y','k1':'z',(1,2,3):'aaa'} # d=dict(....)
    print(d[(1, 2, 3)])#元组是不可变类型
    # d1={[1,2,3]:'aaaaa'}#字典的key不可以可变类型,列表是可变类型
    
    #aaa

    字典的转换

    d=dict([('k1',1),('k2',2),('k3',3)])
    print(d)
    #{'k1': 1, 'k2': 2, 'k3': 3}
    d=dict(x=1,y=2,z=3)
    print(d)
    #{'x': 1, 'y': 2, 'z': 3}
    # 3、常用操作+内置的方法
    #优先掌握的操作:
    #1、按key存取值:可存可取
    d = {'x':1}
    print(d['x'])
    d['x']=111
    print(d)
    d['y']=222
    print(d)
    
    #1
    #{'x': 111}
    #{'x': 111, 'y': 222}

    2、长度

    d={'x':1,'y':2,'z':3}
    print(len(d))
    #3
    3、成员运算 in 或not in 判断是字典的key而不是value
    d = {'x':1, 'y':2,'z':3}
    print('x' in d)
    print(3 not in d)
    #True
    #True
    4、删除
    pop popitem
    pop指定关键字删除,popitem
    #删除  pop  popitem
    d={'x':1,'y':2,'z':3}
    print(d.pop('x'))
    print(d)
    # 随机删
    print(d.popitem())
    print(d)
    
    #1
    #{'y': 2, 'z': 3}
    #('z', 3)
    #{'y': 2}
    5、keys ,values items
    keys,value与items生成对象在类似列表的内容
    d={'x':1,'y':2,'z':3}
    print(d.keys())
    print(d.values())
    print(d.items())
    
    # dict_keys(['x', 'y', 'z'])
    #dict_values([1, 2, 3])
    #dict_items([('x', 1), ('y', 2), ('z', 3)])

    6.for循环

    字典的keys

    d={'x':1,'y':2,'z':3}
    # print(d.keys())
    # print(d.values())
    # print(d.items())
    
    #x
    #y
    #z
    其实等价于:
    d={'x':1,'y':2,'z':3}
    for k in d:
        print(k)

    字典的value

    d={'x':1,'y':2,'z':3}
    for v in d.values():
        print(v)
    #1
    #2
    #3

    字典的item(keys和values)

    d={'x':1,'y':2,'z':3}
    for k,v in d.items():
        print(k,v)
    #x 1
    #y 2
    #z 3
     ======================================该类型总结====================================
    r存多个值
    无序
    可变(1、可变:值变,id不变。可变==不可hash 2、不可变:值变,id就变。不可变==可hash
    =====================================需要掌握的操作===================================================
    get方法 取出对应key的value
    # get方法 取出对应key的value
    d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
    v=d.get('namexxxxxxx')#不会报错,只是返回None
    print(v)
    # v1=d['namexxxxxxxxxxx']#这种方法取值,若没有相应的关键字则会报错
    # print(v1)
    
    #None
    update方法
    d={'name':'egon','age':18,'sex':'male','hobbies':[1,2,3]}
    d.update({'x':1,'name':"EGON"})#update更新,老字典中没有的内容添加,有的内容依照新字典的内容更改
    print(d)
    
    #{'name': 'EGON', 'age': 18, 'sex': 'male', 'hobbies': [1, 2, 3], 'x': 1}
    fromkeys:需求是快速新造出一个字典,value的初始值全都为None,而key是来自于一个列表
    keys=['name','age','sex']
    #等效于for循环生成一个字典
    # d={}
    # for k in keys:
    #     d[k]=None
    
    d={}.fromkeys(keys,None)
    print(d)
    #{'name': None, 'age': None, 'sex': None}
    #常用于生成想要的初识格式的字典
    setdefault  
    # 按照setdefault的形式
    d={"x":1,"y":2}
    res=d.setdefault('x',11111) # 在key存在的情况下不修改值,会返回原值
    print(d)
    print(res)
    # res=d.setdefault('z',11111) # 在key不存在的情况下会新增值,会返回新增的值
    print(d)
    print(res)
    
    #{'x': 1, 'y': 2}
    #1
    #{'x': 1, 'y': 2}
    #1

     

     

     

     

     
  • 相关阅读:
    MySQL Online DDL导致全局锁表案例分析
    .NET Core教程--给API加一个服务端缓存啦
    任务队列和异步接口的正确打开方式(.NET Core版本)
    .NET Core中使用RabbitMQ正确方式
    .NET Core单元测试之搞死开发的覆盖率统计(coverlet + ReportGenerator )
    没有执行过rm -rf /*的开发不是好运维
    dotnet core在Task中使用依赖注入的Service/EFContext
    可能是全网首个支持阿里云Elasticsearch Xapck鉴权的Skywalking
    dpdk中QSBR具体实现
    C语言二级指针底层实现
  • 原文地址:https://www.cnblogs.com/msj513/p/9670763.html
Copyright © 2011-2022 走看看