定义方式
定义:在{}内用逗号隔开多元素,每个元素都是按key:value的形式,其中value可以是任意类型,
而key必须是不可变类型,通常key应该是str类型,因为str类型对value有描述性功能。
student_info = {‘name':'lili','age':22,'hobby':'study'}
取值
student_info = {‘name':'lili','age':22,'hobby':['学习','唱歌']} print(student_info['name']) # 结果:lili print(student_info['hobby'][1]) #结果: 唱歌
赋值
info = {‘name':'lili','age':22,'hobby':'study'} info['gender'] = 'male' print(info)
# 结果:{'name': 'lili', 'age': 22, 'hobby': 'study', 'gender': 'male'}
# 对于赋值操作,如果key原先不存在于字典,则会新增key:value
info = {‘name':'lili','age':22,'hobby':'study'} info['name'] = 'tom' print(info) #结果:{'name': 'tom', 'age': 22, 'hobby': 'study'}
对于赋值操作,如果key原先存在于字典,则会修改对应value的值
长度len print(len(info)) # 3
成员运算 in 和 not in
info = {‘name':'lili','age':22,'hobby':'study'}
print('name' in info) #判断某个值是否是字典的key ---> True
删除:
print(info.pop('age')) # 通过指定字典的key来删除字典的键值对
获取字典所有的key:
print(info.keys())
获取字典所有的value:
print(info.values())
获取字典所有的键值对: #键keys(),值values(),键值对items()
print(info.items())
循环
默认遍历的是字典的key
for key in info:
print(key)
只遍历key
for key in dic.keys():
print(key)
只遍历value
for key in dic.values():
print(key)
遍历key与value
for key in dic.items():
print(key)
重点掌握:
1、get()
dic= {'k1':'jason','k2':'Tony','k3':'JY'}
print( dic.get('k1'))
'jason' # key存在,则获取key对应的value值
res=dic.get('lili') # key不存在,不会报错而是默认返回None
print(res)
None
res=dic.get('tom',666) # key不存在时,可以设置默认返回的值
print(res)
666
# ps:字典取值建议使用get方法
2、pop()
dic= {'k1':'jason','k2':'Tony','k3':'JY'} v = dic.pop('k2') # 删除指定的key对应的键值对,并返回值 print(dic) >>#{'k1': 'jason', 'kk2': 'JY'} print(v) >>'Tony'
3.popitem()
dic= {'k1':'jason','k2':'Tony','k3':'JY'} item = dic.popitem() # 随机删除一组键值对,并将删除的键值放到元组内返回 print(dic) >>{'k3': 'JY', 'k2': 'Tony'} print(item) >>('k1', 'jason')
4.update()
# 用新字典更新旧字典,有则修改,无则添加 dic= {'k1':'jason','k2':'Tony','k3':'JY'} dic.update({'k1':'JN','k4':'xxx'}) print(dic) >>{'k1': 'JN', 'k3': 'JY', 'k2': 'Tony', 'k4': 'xxx'}
5.fromkeys()
dic = dict.fromkeys(['k1','k2','k3'],[]) print(dic) >>{'k1': [], 'k2': [], 'k3': []}
6.setdefault()
# key不存在则新增键值对,并将新增的value返回 dic={'k1':111,'k2':222} res=dic.setdefault('k3',333) print(res) >>>333 print dic # 字典中新增了键值对 >>{'k1': 111, 'k3': 333, 'k2': 222} # key存在则不做任何修改,并返回已存在key对应的value值 dic={'k1':111,'k2':222} res=dic.setdefault('k1',666) print(res) >>111 print(dic) # 字典不变 >>{'k1': 111, 'k2': 222}