Python的学习之旅———基本数据类型(字典)

存多个值,key-value存取,取值速度快,无序

1 定义:key必须是不可变类型,value可以是任意类型
2 d={[1,2,3]:1} #列表不能当做字典的key
3 d={(0,'mac'):3000} 元组可以是 字典
4 
5 举例
6 info={'name':'egon','age':18,'sex':'male'} #本质info=dict({....})

按key存取值:可存可取

1 print(info['sex'])
2 info['hobbies']=['read','music','play','sleep','eat']
3 print(info)

长度len
print(len(info))
成员运算in和not in 返回的是 True 和False

删除

1 print(info.pop('name'))
2 print(info.pop('name1213','确实是没有的,我的哥')) 如果不存在 不会崩溃
3 print(info.pop('name1213',None))

键keys(),值values(),键值对items()
print(info.keys()) 可迭代类型
print(info.values()) 可迭代类型
print(info.items()) 可迭代类型

返回的值 看着是列别不过不是列表 不可以直接使用 是 dic_类型
需要使用next()去取值.

循环
常用方法  取出
1 for key in info.keys():
2     print(key)
3 for val in info.values():
4     print(val)
5 
6 for item in info.items():   取出来的是一个元组
7     print(item[0],item[1])

info={'name':'egon','age':18,'sex':'male'}
print(info['name123']) 会报错

推荐字典取值方式  .get()

info.get('name123','呵呵呵')

推荐改值的方式

 

info.setdefault('hobbies',['read','music']

 

使用get方法取值 即使 'name123' 不存在在列表中也不会报错 返回 预设的 呵呵
info.popitem()
随机删除键值对 返回删除的值 (元组)

1 for k,v in info.items(): #k,v=('name', 'egon')
2 print(k,v)              取出来的直接是key和value值
3 print(info.setdefault('hobbies',['read','music'])) #有则不改,返回已经有的值,没有则新增,返回新增的值
4 print(info)

 

 1 print(id(info.setdefault('hobbies',[])))
 2 print(id(info['hobbies']))
 3 l=[]
 4 
 5 info={'name':'egon','age':18,'sex':'male',}
 6 if 'hobbies' not in info:
 7 info['hobbies']=[]
 8 info['hobbies'].append('music')
 9 else:
10 info['hobbies'].append('read')
11 
12 if 'hobbies' not in info:
13 info['hobbies'] = []
14 info['hobbies'].append('music')
15 else:
16 info['hobbies'].append('read')
17 
18 print(info)
19 
20 info.setdefault('hobbies',[]).append('music')
21 
22 # {'name': 'egon', 'age': 18, 'sex': 'male', 'hobbies': ['music', ]}
23 info.setdefault('hobbies',[]).append('read') #['music', ].append('read')
24 print(info)
25 
26 了解
27 info_new={'a':1,'age':19}
28 info.update(info_new)
29 print(info)
30 
31 dic={'name':None,'age':None,'sex':None,'hobbies':None}
32 dic1={}.fromkeys(['name','age','hobbies'],None)
33 print(dic1)

 

posted @ 2017-09-15 23:07  恩是的  阅读(193)  评论(0编辑  收藏  举报