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)
原文地址:https://www.cnblogs.com/ysging/p/9821321.html