Python中的字典

Python内置了字典:dict,全称dictionary,使用键-值(key-value)存储,具有极快的查找速度。
定义一个字典:
dic = {'name':'jack','age':18,'weight':76,'height':175}
其中 'name','age','weight','height'是字典中的key,
key在字典中是唯一的,其数据类型为不可变的对象,如:字符串,整数等,list是可变的对象,就不能做为key来使用

dict和list比较:
  dict: 查找和插入的速度极快,不会随着key-value的增加而变慢;但是占用的资源比较多,dict是无序的
  list:查找和插入的速度慢,会随着元素的增加时间变长,但是占用的资源较少,list是有序的

dict的常用方法:
查找:字典的查找通过key来查找,
value = dic['name']
print(value)
如果key不存在,则会报错 KeyError,可以通过 get()方法来获取,并指定自定义的返回值
value = dic.get('name','没有这个键')
print(value)

上面的代码,使用get()方法,来获取 'name'对应的value 如果'name'存在,则返回对应的value,如果 'name' 不存在,则返回 '没有这个键',如果第二个参数不指定,默认返回 None

增加内容:
dic['adress'] = 'beijing'  # 通过 dict[key] = value 的方式来增加元素。注意:如果key存在,则会覆盖对应的value
print(dic)
还可以通过setdefault() 方法来增加内容
dic.setdefault('house_number',888)
print(dic)

使用setdefault() 方法,如果只添加key,不给第二个参数赋值,默认为None
dic.setdefault('house')
print(dic)
删除内容 pop() 方法
dic_pop = dic.pop('adre','没有此键') 
print(dic_pop)
print(dic)
上面的代码:删除指定的key-value,并返回对应的value。如果指定的key不存在, 返回自定义内容,但,如果key不存在,第二个参数没有填写。则会报错

popitem()方法
print(dic.popitem()) # 随机删除一对key-value对儿,并返回删除的key-value 以元组的形式返回

del 方法 无返回值
del dic['name']
print(dic)

clear()方法 清空字典
dic.clear()
print(dic)

修改字典内容,可以通过修改key对应的值来操作
dic = {'name':'jack','age':18,'weight':76,'height':175}
dic['name'] = 'tom'
print(dic)

update() 方法
dic_1 = {'name':'jack','age':18}
dic_2 = {'name':'tom','address':'beijing','age':19,'height':178}
dic_1.update(dic_2)
print(dic_1)
以上代码,将dic_2 的内容更新到 dic_1中去

字典循环操作
dic = {'name':'jack','age':18,'weight':76,'height':175}
for k in dic:
    print(k) # 默认打印字典的key
for k in dic.keys():
    print(k) # 打印字典的key
for v in dic.values():
    print(v) # 打印字典中的value
for k,v in dic.items():
    print('k = %s, v = %s' %(k,v)) # 打印key 和 value

 其中 key() 方法,valuses()方法,以及 items() 方法,返回的数据类型可以当成一个list来使用,但是返回的类型如下:

print(type(dic.keys()))  # <class 'dict_keys'>
print(type(dic.values()))  # <class 'dict_values'>
print(type(dic.items()))  # <class 'dict_items'>



原文地址:https://www.cnblogs.com/hongyu0518/p/9650263.html