python 日常学习3-------字典

    字典是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))

 

posted @ 2017-11-10 14:24  向日葵的部落  阅读(166)  评论(0编辑  收藏  举报