字典是python语言中唯一的映射类型。字典对象是可变得,他是一个容器类型,
能存储任意个数的python对象,其中也包括其他容器类型,如列表。
简单来说,字典就是i用大括号包裹的键值对的集合,如下:
dictionary = {}
或者 dictionary = {key1:value1,key2:value2,}
其特点是:
1,键与值用冒号:分开。
2.项与项用逗号,分开。
3,字典中的键必须是唯一的,而值可以不唯一。
------------------------------------------------------------字典的操作方法------------
定义一个字典:
info = {
'student001':'xiaoming',
'student002':'xiaohong',
'student003':'xiaohua',
'student004':'xiaofang'
}
#初始化一个字典 .fromkeys方法,不适合用创建多层字典。
c = dict.fromkeys([6,7,8],'test')
print(c)
输出student001对应的value值
print(info['student001'])
#修改字典内的内容,根据key,查找修改字典内的数据,如果存在则修改,不存在就添加
#如下代码会把info字典里key值为student001对应的value修改为小明,
info['student001'] = '小明'
#如下代码会添加一条数据,因为字典中不存在student005这个key。
info['student005'] = '小孩'
#删除
del info['student005']
#info.pop('student005')
#如下代码回随机删除字典里的一组数据,一般不会用
info.popitem()
#查找,get 方法查找时,有则返回对应的value,没有则返回none,不会报错
info.get('student002')
#判断字典是否存在key,会返回true,false
print('student013' in info)
print(info.keys())
-----------------------------------------字典遍历----------
# 字典的循环 第一种循环方式比第二种高效。
for i in av_catlog:
print(i,av_catlog[i])
for k,value in av_catlog.items():
print(k,value)
#dict ''' 数据类型分为:可变数据类型、不可变数据类型 不可变数据类型: 元组,bool,int,str. 这类数据可哈希。 可变数据类型: 列表(list)、字典(dict) 集合(set) 不可哈希 dict 的key 必须是不可变数据类型。value 的值,任意数据类型 dict的优势:二分查找去查询,存储大量发数据,特点是无序的。 ''' dic = { 'name':'三光', 'age':32, } #增 dic['height'] = 183 #没有键值对则添加,有则修改 #有键值对,不做任何改变,没有才添加 #只添加键,则值默认是None dic.setdefault('weight') print(dic) #删 print(dic.pop('二哥','没有此键')) #可设置返回值,没有此键时提示,且不会报错 print(dic.popitem()) #随机删除,返回删除的键值对,以元组的形式 #清空字典, dic.clear() #删除 del dic['name'] #改 #把dic字典里的键值对更新到dic2中,有的更新,没有的添加。 dic2 ={'name':'zhuzi'} dic2.update(dic) #查 for key,value in dic2.items(): print(key,value) dic2.get('name') #如果没找到返回None,可设置返回的提示消息, #--------------嵌套------------------------ dicc = { 'name':['zhuzi','钢盔','发哥'], 'zzxy':{ 'time':'2011', 'zhuanye':'软件外包', 'learn_money':8000, }, 'sex':'男' } # sex 改为nan dicc['sex'] = 'nan' #name列表,添加一个日天 dicc['name'].append('日天') #name列表里的zhuzi,全改为大写 dicc['name'][0]=dicc['name'][0].upper() #zzxy对应的字典添加一个键值对,xuenian :4 dicc['zzxy'].setdefault('xuenian',4) print(dicc) #输入一串数字和字母混合的字符串,输出数字的个数,注:连在一起的数字算一个。 info = input('>>>') for i in info: if i.isalpha(): info = info.replace(i," ") L = info.split() print(len(L))