dict字典

#coding:utf-8
#元组只能被查,一般不能被修改,孙子级别可以被修改
# tuple1 = (1,2,3,'a',['hello',['A','B','C'],'red','e'],'b')
# tuple1[4][1][0]='AAAAAAAA'
# print(tuple1)

#字典的创建方式
# dict:字典分为两类:字典的键只能由不可变的数据类型才能命名,可变的数据类型不能命名
# 不可变,可哈希:int str bool tuple
# 可变,不可哈希:list dict set
'''
#方式一
b = dict({'name':['xiaozha','chayedan'],'age':(18,20),'color':{'color1':'red','color2':'bule'}})
print(b)
#方式二
c = dict((('one',1),('two',2)))
#方式三
d = dict(one=1,two=2)
print(c)
print(d)
#方式四
bb = {12:4444,'name':['xiaozha','chayedan'],(1,3):('xiaozha'),'age':(18,20),'color':{'color1':'red','color2':'bule'}}
print(bb['name'])
print(bb['color']['color1'])
print((1,3))
'''
'''
#dict 字典增加
dic = {'name':'茶叶蛋','age':18,'from':'深圳'}
#给dic字典追加一对键值
dic['weight']=50
print(dic)
#修改name键的值
dic['name']='小查'
print(dic)

#setdefault(), setdefault() 函数和 get()方法 类似, 如果键不存在于字典中,将会添加键并将值设为默认值
dic1 = {'name':'taibai','age':13}
#没有height键,则添加键值
dic1.setdefault('height',162)
print(dic1)
#有height键,则值不变
dic1.setdefault('height',168)
print(dic1)
#setdefault()查询有返回值,键存在则返回值,键不存在,返回默认值None
ret = dic1.setdefault('name1')
print(ret)

dict2 = {'runoob':'菜鸟教程','google':'google 搜索'}
print("value:%s" % dict2.setdefault('runoob',None))
print('value:%s' %dict2.setdefault('taobao','淘宝'))
print("=================")
#字典四种循环方式
#直接循环,只显示键,不显示值
for i in dict2:
print(i)
print("=============")
#字典后面加.values(),只显示值,不显示键
for j in dict2.values():
print(j)
#字典后面加.items(),键值都可以显示
print("==================")
for k in dict2.items():
print(k)
#最佳方式是加上key,value,可以显示更多的东西
print("==============")
for key,value in dict2.items():
print("dict2 "+key+" is "+value)

#字典--删除
#pop()通过key删除字典的键值对,有返回值,可设置返回值
dic3 = {'name':'茶叶蛋','age':15}
ret1 = dic3.pop('name')
ret2 = dic3.pop('age',11)
#popitem() 3.5版本之前,popitem为随机删除,3.6之后为删除最后一个,有返回值
dic4 = {'name':'茶叶蛋','age':15,'height':162}
ret3 = dic4.popitem()
print(ret3)
print(dic4)
#clear 清空字典
dic5 = {'name':'茶叶蛋','age':15,'height':162}
dic5.clear()
print(dic5)
#del 通过键删除键值对
dic6 = {'name':'茶叶蛋','age':15,'height':162}
del dic6['age']
print(dic6)
#删除整个字典
del dic6
print(dic7)
#update(),将dic8更新到dic7字典中,键不存在则添加,键存在则修改值
dic8 = {'sex':'女','age':18}
dic7.update(dic8)
print(dic7)

#将列表更新到字典中
dic7 = {'name':'茶叶蛋','age':15,'height':162}
dic7.update([(1,'a'),(2,'b'),(3,'c')])
print(dic7) #
#修改字典值,键存在更新值,不存在添加键值对
dic8 = {'name':'茶叶蛋','age':15,'height':162}
dic8.update(sex='男',height=175)
print(dic8)

#dict 查询
#通过键查询,dic[key],没有键就报错
dic9 = {'name':'茶叶蛋','age':15,'height':162}
print(dic9['age'])
#get() ,没有键会返回默认值None
res1 = dic9.get('name')
res2 = dic9.get('age1')
print(res1,res2)
#key(),返回所有的键名
print(dic9.keys())
#values(),返回所有的值名
print(dic9.values())
#items(),返回所有的键值对
print(dic9.items())
'''
'''
#练习
# dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
# 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
#方式一
dic['k4']='abcefdsf'
print(dic)
#方式二
dic.setdefault('k5','xiaozha')
print(dic)
#方式三
dic1 = {'key1':123,'age':12,111:222}
dic.update(dic1)
print(dic)

# 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典
dic2 = {'k1': "v1", "k2": "v2", "k3": [11,22,33]}
dic2['k1']='alex'
print(dic2)
dic2.update(k2='values2')
print(dic2)
dic3 = {'key5':'values5',123:321}
dic2.update(dic3)
print(dic2)
dic2.update([('key6','values6')])
print(dic2)

# 请在k3对应的值中追加一个元素 44,输出修改后的字典
dic5 = {'k1': "v1", "k2": "v2", "k3": [11, 22, 33]}
# dic5['k3']=[11,22,33,44]
# print(dic5)
# dic5.update(k3=[11,22,33,44])
# print(dic5)
dic5['k3'].append('xiaozha')
# 请在k3对*/*+-应的值的第 1 个位置插入个元素 18,输出修改后的字典
dic5['k3'].insert(0, 18)
dic5['k3'].append(19)
print(dic5)
'''

'''
dic2 = {
'name':'汪峰',
'age':48,
'wife':[{'name':'国际章','age':38}],
'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'}
}
# 1. 获取汪峰的名字
dic1 = dic2['name']
print(dic1)
# 2.获取这个字典:{'name':'国际章','age':38}
dic3 = dic2['wife'][0]
print(dic3)
# 3. 获取汪峰妻子的名字。
dic4 = dic2['wife'][0]['name']
print(dic4)
# 4. 获取汪峰的第三个孩子名字。
dic5 = dic2['children']['girl_three']
print(dic5)
'''
tt = {
'name':['alex',2,3,5],
'job':'teacher',
'oldboy':{'alex':['python1','python2',100]}
}
# 1,将name对应的列表追加⼀个元素’wusir’
tt1 = tt['name']
tt1.append('wusir')
print(tt1)
# 2,将name对应的列表中的alex⾸字⺟⼤写
tt2 = tt['name']
tt2[0] = tt2[0].upper()
print(tt2)

# 3,oldboy对应的字典加⼀个键值对’⽼男孩’,’linux’
tt3 = tt['oldboy']
tt3['老男孩']='linux'
print(tt3)
# 4,将oldboy对应的字典中的alex对应的列表中的python2删除
tt4 = tt['oldboy']['alex']
tt4.pop(1)print(tt4)












posted @ 2019-09-09 14:32  茶叶蛋查  阅读(161)  评论(0编辑  收藏  举报