Python 全栈开发:python字典dict

字典

什么是字典:是一种可变容器模型,且可存储任意类型对象。

用途:以key:value的形式存多个值

表现形式:{}内以逗号分隔多个元素,格式为key:value,

eg:

dic = {'name':'Fixd','age':18}

字典的函数和方法

函数

方法

 

常用的方法

按key存取值:可存可取

dic={'name':'Fixd'}
dic['age']=10       #增加操作
print(dic)
dic['name']='Fixd'  #重新赋值
print(dic)
print('name')       #取值操作

 

长度len

dic = {'name':'Fixd','age':18}
print(len(dic))     #获取长度 结果:2

 

增加

# setdefaul的用处:
# 1、字典有中有key,则不修改,返回原key对应的原值
dic={'name':'Fixd','age':18}
res=dic.setdefault('name','FIXD')
print('返回值',res)        #结果:返回值 Fixd
print(dic)                 #结果:{'name': 'Fixd', 'age': 18}

# 2、没有对应的key,则添加,返回添加的key对应的value
dic={'age':18}
res=dic.setdefault('name','FIXD')
print('返回值',res)        #结果:
print(dic)                #结果: {'age': 18, 'name': 'FIXD'}

 

删除

dic={'name':'fixd','age':18}
print(dic)
res=dic.pop('name')
print(res)              #fixd
print(dic)              #{'age': 18}

dic={'name':'fixd','age':18}
res=dic.pop('sex',None)
print(res)              #one

dic={'name':'fixd','age':18}
res = dic.popitem()
print(res)              #('age', 18)  这个值不是确定的,一般会从结果删除

 

更新

dic={'name':'fixd','age':18}
dic2={'name':'yite','age':18,'hobby':'music'}
dic.update(dic2)
print(dic)      #{'name': 'yite', 'age': 18, 'hobby': 'music'}
#对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖

 

键keys(),值values(),键值对items()

#三种不同方式的取值
dic={'name':'fixd','age':18}
print(dic.keys())
#keys()
for x in dic.keys():
    print(x)
    print(x,dic[x])
#values()
for value in dic.values():
    print(value)
#items()
print(dic.items())
for k,v in dic.items(): #k,v=('name', 'egon')
    print(k,v)

print(type(dic.items()))

结果

成员运算in和not in:判断的字典的key

dic={'name':'fixd','age':18}
print('name' in dic)        #True
print('age' in dic)         #True
print('hobby' in dic)       #False
print('hobby' not in dic)   #True

fromkeys()

# dic.fromkeys()
good_info={
    'name':None,
    'price':None,
    'count':None
}
# 'mac'  20000  10
print({}.fromkeys(['name','age','sex'],None))
#结果 {'name':None,'age':None,'sex':None}

 

posted @ 2018-03-21 23:03  Fixdq  阅读(240)  评论(0编辑  收藏  举报