zoukankan      html  css  js  c++  java
  • day 5

    dict


    dict key 必须是不可变数据类型,可哈希
    value:任意数据类型

    dict 优点:使用二分查询来搜索数据
    存储了大量的关系型数据
    特点:无序的


    数据类型划分:可变数据类型,不可变数据类型
    不可变数据类型:元祖,bool int str 可哈希
    可变数据类型: list dict set 不可哈希

     编辑一个字典:这样书写方便看清层级关系

    dic = {
         'name':['大猛','小孟'],
         'py9':[{'num':71,'avg_age':18,},
                {'num': 71, 'avg_age': 18, },
                {'num': 71, 'avg_age': 18, },
                ],
         True:1,
         (1,2,3):'wuyiyi',
         2:'二哥',
         }
    print(dic)

    字典的增删改查 

    dic = {'age': 18, 'name': 'ysg', 'sex': 'man',}

    1)增    键值对、setdefault

    dic['high'] = 180   #没有键值对 添加
    print(dic)
    
    dic['age'] = 21     #有键值对 则值覆盖
    print(dic)
    
    dic.setdefault("weight")    #在没有值的情况下默认为 None
    print(dic)
    
    dic.setdefault("weight",152)    #在有值且没有重复键的情况下添加
    print(dic)
    
    dic.setdefault("name","abc")    #在有值且有重复键的情况下不作任何操作
    print(dic)

    2)删    pop、clear、del

    #dic.pop('age')
    print(dic.pop('age'))   #有返回值 按键去删除
    print(dic)
    
    print(dic.pop('hello',None))     #当删除时不确定有没有该键时,可以在后面设置返回值不认会报错
    
    dic.clear()     #清空字典
    print(dic)
    
    del dict        #删除字典
    print(dic)
    

    3)改    键值对、update

    dic = {'age': 18, 'name': 'ysg', 'sex': 'man',}
    dic2 = {'age': 22, "weight":152}
    
    dic['age'] = 21     #有键值对 则值覆盖
    print(dic)
    
    dic2.update(dic)  #把 dic 追加给 dic2
    print(dic)
    print(dic2)

    4)查  dic.keys、dic.valuse、dic.items、for 循环、get、键值对(在不存在改键时报错,不推荐使用)

    dic = {'age': 18, 'name': 'ysg', 'sex': 'man'}
    
    print(dic.keys(),type(dic.keys()))
    print(dic.values(),type(dic.values()))
    print(dic.items(),type(dic.items()))
    
    for i in dic: print(i) for i in dic.keys(): print(i) for i in dic.values(): print(i) for i in dic.items(): print(i) v = dic['name'] print(v)
    #键值对 v2 = dic['name1'] #报错 print(v2)
    #get print(dic.get('name1')) #如果没有该键 可以设置返回值 print(dic.get('name1','不存在'))
    dic = {'age': 18, 'name': 'ysg', 'sex': 'man'}
    
    #如何使用 for 循环,只打印 key 与 values
    
    for i in dic.items():
        print(i)
    
    for k,v in dic.items():
        print(k,v)

    dict 嵌套

    dic = {
        'name':['alex','wusir','peipei'],
        'py9':{
            'time':'1213',
            'learn_money':19800,
            'addr':'CBD',
               },
        'age':21
    }
    
    #修改 age 的值
    dic['age'] = 22
    print(dic)
    
    #在 dic 中的 name 中添加 'ysg'
    dic['name'].append('ysg')
    print(dic)
    
    #把 name 中的第二个字符修改为大写
    dic['name'][1] = dic['name'][1].upper()
    print(dic)
    
    #在 py9 中添加 count:5
    dic['py9']["count"]=5
    print(dic)

    变态面试题

    #怎么用一行代码实现值互换
    a,b =1,2
    print(a,b)
    
    a = 1
    b = 2
    a,b = b,a
    print(a,b)
    
    
    
    #列表元组同样适用
    a,b = [1,2],[3,4]   #会根据最大关系自动对应
    print(a,b)
    
    a,b = (1,2)
    print(a,b)
  • 相关阅读:
    关于mysql 中schema的相关操作
    ASP.NET Core MVC 之过滤器(Filter)
    docker-Error: No such container
    java多种加密和解密方式
    linux 下的rpm 和ivh各是什么意思
    新生赛题目准备
    Figma 学习笔记 – Keyboard Shortcut and Tips 小技巧
    Figma 学习笔记 – Frame
    Chart.js 学习笔记
    SQL Server STRING_AGG
  • 原文地址:https://www.cnblogs.com/ysging/p/9821321.html
Copyright © 2011-2022 走看看