zoukankan      html  css  js  c++  java
  • 字典类型

    字典类型

    作用:用来记录多个值是用key对应值,key对value有描述性功能

    定义:在{}内用逗号隔开多个key:value,其中value可以是任意类型,但是key是不可变类型,且不能重复

    造字典的方式

    取value值
    d={'k1':111,(1,2,3):222} # d=dict(...)#key可以是字符串,元组
    print(d['k1'])
    >>>
    111
    print(d[(1,2,3)])
    >>>
    222
    
    方式一
    info=[
        ['name','egon'],
        ('age',18),
        ['gender','male']
    ]
    d={}
    for k,v in info: #赋值两个变量名一个当key,一个当value
        d[k]=v
    print(d)
    >>>
    {'name': 'egon', 'age': 18, 'gender': 'male'}
    
    
    
    方式二:
    d=dict(x=1,y=2,z=3)#通过dict功能的转换,转换成字典类型
    print(d)
    >>>
    {'x':1,'y':2,'z':3}#把变量名转成key,值转成value
    
    
    方式三
    info=[
        ['name','egon'],
        ('age',18),
        ['gender','male']
    ]
    res=dict(info) # 一行代码搞定上述for循环的工作
    print(res)
    >>>
    {'name': 'egon', 'age': 18, 'gender': 'male'}
    
    
    方式四
    #只适合初始化字典用
    keys=['name','age','gender']#只有key,再定义一个空的value值
    d={}
    for k in keys:
    	d[k]=None
    	print(d)
    >>>
    {'name':None,'age':None,'gender':None}
    
    
    方式五:formkeys()
    #只适合初始化字典用
    keys=['name','age','gender']
    d={}.formkeys(kesy,None)
    print(d)
    >>>
    {'name':None,'age':None,'gender':None}
    

    类型转换

    info=[
        ['name','egon'],
        ('age',18),
        ['gender','male']
    ]
    d={}
    for k,v in info: # k,v=['name','egon'],
        d[k]=v
    print(d)
    

    按key存取值:

    可存可取

    d={'k1':111}
    针对赋值操作:key存在,则修改
    d['k1']=222
    >>>
    {'k1':222}
    针对赋值操作:key不存在,则创建新值
    d['k2']=3333
    print(d)
    >>>
    {'k1':222,'k2':333}
    

    长度len

    d={'k1':111,'k2':222,'k1':333,'k1':444}
    print(d)
    {'k1':444,'k2':222}#key是不可变的且唯一的,只会保留一位key
    print(len(d))
    >>>
    2#代表只有连个key值与value
    

    成员运算in和not in:

    根据key来判断

    d={'k1':111,'k2':2222}
    print('k1' in d)#判断字典里是否有'k1'这个key,字典判断判断的是key,有则是True没有则是False
    >>>
    True
    print(111 in d)#判断字典里是否有'111'这个key,字典判断判断的是key,有则是True没有则是False
    >>>
    False
    

    删除

    方式1:del()
    通用的删除方式
    d={'k1':111,'k2':222}
    del  #字典删除都是根据key删除,返回删除key对应的Value值
    
    
    方式2:pop()
    d={'k1':111,'k2':222}
    d.pop('k2')
    print(d)
    >>>
    {'k1':111}
    
    res=d.pop('k2')#会返回删除对应key的对应的value值
    print(res)
    >>>
    'k2':222
    
    方式3:poptem()   #随机删除
    d={'k1':111,'k2':222}
    res=d.popitem()#不确定会删除哪一个,不推荐使用
    print(d)
    print(res)#会返回元组类型(删除的key,value)
    

    for循环

    键keys()值value()键值items()

    键keys(): 只取循环字典里面的key值

    值values(): 只取循环字典里面的value值

    键值items(): 把循环字典里面的key跟value都取出来

    d={'k1':111,'k2':222}
    for k in d.keys():    #只取循环字典里面的key值
    	print(k)
    >>>
    k1
    k2
    
    d={'k1':111,'k2':222}
    for k in d:    #普通的方法一样的可以只取key值
        print(k)
    >>>
    k1
    k2
    
    d={'k1':111,'k2':222}
    for v in d.values():   # 只取循环字典里面的value值
    	print(v)
    >>>	
    111
    222
    
    d={'k1':111,'k2':222}
    for k,v in d.items():    #把循环字典里面的key跟value都取出来
    	print(k,v)
    >>>k1   111
       k2   222
       
       
    d={'k1':111,'k2':222}
    for item d.items():
    	print(item)
    >>>
    ('k1',111)    #得到的结果是元组类型
    ('k2',222)
    
    
    转成列表类型
    print(list(d.keys()))
    >>>
    ['k1','k2']
    print(list(d.values()))
    >>>
    [111,222]
    print(list(d.items()))
    >>>
    [('k1',11),('k2',22)]
    

    clear(): 清空字典

    get(): 按key取值

    d={'k1':111}
    
    d.get('k2') :根据key取值,容错性好
    print(d['k2'])  # key不存在则报错
    
    print(d.get('k1')) # 111
    print(d.get('k2')) # key不存在不报错,返回None
    
    

    update(): 用新的字典去更新旧字典,一切一以新字典为准

    d={'k1':111}
    d.update({'k2':222,'k3':333,'k1':444})
    print(d)
    >>>
    {'k1':444,'k2':222,'k3':333}
    

    setdefauit(): 意思就是字典里有这歌key则什么都不变,如果没有则添加进去

    info={}
    res=info.setdefault('name','egon')
    print(res)
    >>>
    {'name':'egon'}
    
  • 相关阅读:
    常见算法复杂度解析
    Linux shell脚本根据文件路径信息获取路径和名称
    linux 目录递归替换差异文件
    Linux普通用户具备root用户操作权限
    java线上异常定位工具
    OCR
    国内镜像
    hadoop镜像
    处理Jsp出现乱码问题
    无缝滚动
  • 原文地址:https://www.cnblogs.com/hm666/p/12495512.html
Copyright © 2011-2022 走看看