5.Python day05,dict字典

数据类型划分:可变数据类型,不可变数据类型。
  不可变数据类型:元祖,bool,int,str 可哈希(Hash)
  可变数据类型:list,dict,set 不可哈希
dict 字典:
  key  必须是不可变数据类型,可哈希。
  value 任意数据类型。
  优点:二分查找法查询,存储大量关系型数据。
  特点:无序的。
dic = {
     'name':['大猛','小孟'],
     'pys9':[{'num':71,'age':18},
             {'num':71,'age':18}],
     True:1,
     (1,2,3):'没意义',
     2:'二哥',
}
dic = {'name':'许志柱','age':28,'gender':''}

增:

dic['high']=175#没有的键值对,添加
dic['age'] = 18#已有的键,覆盖原来的值。

setdefault()#有键值对,不做任何操作。没有才添加。
dic.setdefault('weight')
dic.setdefault('weight',150)
dic.setdefault('name','许小志')

删:

dic = {'name':'许志柱','age':28,'gender':''}
pop()#按照键删除
print(dic.pop('age'))#有返回值,返回被删的值
print(dic.pop('love',None))#可设置返回值。

print(dic.popitem())#随机删除,返回一个元祖,删除的键值。

dic.clear() #清空字典

del dic['name']#没有返回值
del dic['name1']#如果没有给定键,会报错。所以删除尽量用pop

del dic#在内存里删除整个字典,

改:

dic = {'name':'许志柱','age':28,'gender':''}
dic['age'] = 18

dic2 = {'name':'许小志','sal':5000}
dic2.update(dic)#把dic更新到dic2,dic与dic2,都有的,就覆盖。没有的,就添加。
print(dic)#dic不变
print(dic2)#dic2更新了

查:

dic = {'name':'许志柱','age':28,'gender':''}
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:
     print(dic[i])
for i in dic.keys():
     print(i)
for i in dic.values():
     print(i)
a,b = 1,2
print(a,b)
a = 1
b = 2
a,b = b,a
print(a,b)#用一行代码互换。
a,b = [1,2]
a,b = [1,2],[3,4]
a,b = (1,2)
print(a,b)
dic = {'name':'许志柱','age':28,'gender':''}
for k,v in dic.items():
     print(k,v)
v = dic['name']
print(v)
v1 = dic['nameee']#没有这个键,会报错。
print(v1)
print(dic.get('name1','没有这个键'))#用键获取值,可以存入没有的返回值。默认为None
print(dic.get('name'))

dict字典嵌套:

dic ={
    'name':['alex','wusir','taibai'],
    'pys9':{
        'time':'1213',
        'learn_money':19800,
        'addr':'CBD',
    },
    'age':18
}
dic['age'] = 58;
dic['name'].append('日天')
dic['name'][1] = dic['name'][1].upper()
dic['pys9']['female'] = 6
print(dic)

 

 
posted on 2018-11-22 12:55  许小志  阅读(137)  评论(0编辑  收藏  举报