字典

 

如果大家看过以前我写的内容就会知道有列表  但是既然有了列表,因为你存储的内容有五花八门的,如果你想为你存储的内容起个NB的名字的时候你该怎么存储呢? 这个时候烦人的字典就又来了(是不死有人会说 怎么这么烦人还要学习这么多的知识点  慢慢来 你会发现学的会更多)

 字典的key必须是不可变类型也就是字典的key只可以用元组 int  str   forzenset的集合

字典常用方法

增加:

  第一种 直接增加key值进行赋值来增加元素  有则覆盖 无则添加

info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
info_dic['eat'] = ''
print(info_dic)

setdefault---->  如果有key就不变 没有就添加

info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
info_dic.setdefault('name','laowang')  #把name的变量添加到字典中  setdefault 是把键值对添加到一个字典中 如果字典中有这个key值就不覆盖
print(info_dic)

update------>  把两个字典相加 覆盖

info_dic = {'name':'honglingjing', 'sge':18 , 'sex':''}
info = {'name':'', 'age':17, 'hobby':'吃饭'}
info_dic.update(info) #把括号内的字典info 覆盖到info_dic中 并且info_dic的其他多余的内容还保存不变
print(info_dic)

删除:

pop  clear  del

pop 删除

dic.pop('hobby')
print(dic)  #报错
print(dic.pop('hobby',None))

 

clear  是清空字典

del是删除整个字典  也可以指定key值来删除

dic = {"name":"jin",
       "age":18,
       "sex":"male",
       }
del dic['name']  #可以指定key值来删除
print(dic)
dic = {"name":"jin",
       "age":18,
       "sex":"male",
       }
# del dic['name']  #可以指定key值来删除
# print(dic)
print(dic['name'])
# print(dic['name1']) #报错
print(dic.get('name'))  #用get来查找
print(dic.get('age1')) #默认返回值是None
print(dic.get('name1','没有这个值'))  #y也可定义返回的值

get()----->查找 查找指定的元素

把下面列表用字典的get()大于66的和小于66的分开放在字典中:

li= [11,22,33,44,55,66,77,88,99,90]
dic = {}
for i in li:
    if i > 66:
        if dic.get('k1'):
            dic['k1'].append(i)
        else:
            dic['k1'] = [i]
    elif i < 66:
        if dic.get('k2'):
            dic['k2'].append(i)
        else:
            dic['k2'] = [i]


print(dic)

 

 

keys()----->查找字典内所有的key:

我们如果想单独的查找字典内的key的值 我们可以用到keys() 方法 就是寻找 字典中的所有的key键

dic = {"name":"jin",
       "age":18,
       "sex":"male",
       }

print(dic.keys())  #查找字典中所有的key

 

values()------>查找字典内所有的值value:

dic = {"name":"jin",
       "age":18,
       "sex":"male",
       }

print(dic.values())

items() ------>查找字典内的键值对:  (几乎都是配合for循环来实现的)

dic = {"name":"jin",
       "age":18,
       "sex":"male",
       }
print(dic.items())

 

 formkeys();就是你可以把一个可迭代对象设置成一个字典的key  这个可迭代对象的所有元素都和这个value对应,就是通过fromkeys()转化后可迭代对象中的每一个元素所对应的value都相同

i = [1, 2, 4]
l = {}
l = l.fromkeys(i)
print(l){1: None, 2: None, 4: None}

 

就是创建的字典的中key可以不同但是指向的value是同一个内存地址的

 

v = dict.fromkeys(['k1','k2'],[])  # 创建的 字典key是k1 和k2 但是value都是[]
print(v)   # {'k1': [], 'k2': []}
v['k1'].append(666)  # {'k1': [666], 'k2': [666]}
print(v)
v['k1'] = 777     
print(v)  # {'k1': 777, 'k2': [666]}

 

 

 

 

 

# -*- coding: utf-8 -*-
#python 27
#xiaodeng
#python之函数用法fromkeys()



#fromkeys()
#说明:用于创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值
'''
>>> help(dict.fromkeys)
Help on built-in function fromkeys:

fromkeys(...)
    dict.fromkeys(S[,v]) -> New dict with keys from S and values equal to v.
    v defaults to None.
'''


#案例
d=[1,2,3]
dict={}
dict=dict.fromkeys(d)
print dict                          #{1: None, 2: None, 3: None}
dict=dict.fromkeys(d,'xiaodeng')    #xiaodeng为默认值
print dict                          #{1: 'xiaodeng', 2: 'xiaodeng', 3: 'xiaodeng'}
View Code

 

 

 

 

 

 

 

 

posted @ 2018-03-22 18:28  可爱的红领巾  阅读(221)  评论(0编辑  收藏  举报