python中 字典类型内置方法
一、字典(dict)
 1·、 存多个值,但是每一个值都有一个key与之对应。列如存在值有姓名:jiayi、年龄:18、身高:173
 2、定义方式
 在{}内用逗号分隔多个元素,每个元素都是key:value的形式,value可以是任意数据类型,key通常是字符串类型,但是key必须为不可变类型。
age = {'姓名':'王文彬','性别':'男','名族':'汉'} #直接定义一个列表
print(age)
print(type(age)) #
{'姓名': '王文彬', '性别': '男', '名族': '汉'}
二、内置方法
1.按key存取、修改值
dic ={'name':'jiayi','age':20,'height':173}
print(dic['name']) #可取
dic['age'] = 18 #可指定key修改对应的值
print(dic)
jiayi
{'name': 'jiayi', 'age': 18, 'height': 173}
2.长度(len)(有几组就输出数字几)
dic ={'name':'jiayi','age':20,'height':173}
print(len(dic))
3.成员运算符(in\not in)
dic ={'name':'wangwenbin','age':20,'height':173}
print('name'in dic)
print('age' not in dic)
4.for 循环
dic是无序的,但是python3采用了底层优化算法,所以看起来是有序的
dic ={'name':'wenbin','age':20,'height':173}
for i in dic.items(): #items是返回两个值(key和values)可以换成keys(),values()
print(i)
items是返回两个值(key和values)可以换成
所有方法后面都有() 所有的属性都是点出来的
5.删除:del /pop()/popitem
(1)del
dic ={'name':'jiayi','age':20,'height':173}
del dic['name'] #删除[key]所对应的key和value
print(dic)
print(dic.get('name')) #打印字典里key为name的值,用的方法是 .get。如果没有这个值返回值默认为'Nnne'
print(dic.get('name',2222)) #也可以指定输出,这里输出结果为222
{'age': 20, 'height': 173}
None
2222
(2)pop()
dic ={'name':'jiayi','age':20,'height':173}
dic.pop('name') #指定元素删除
print(dic.pop('age')) #删除并且打印删除的这个元素
print(dic.get('age')) #在字典中取出 key为(age)的值。不在的话返回 None
print(dic)
20
None
{'height': 173}
(3)popitem
dic ={'name':'jiayi','age':20,'height':173}
print(dic.popitem()) #Python 字典 popitem() 方法返回并删除字典中的最后一对键和值。
print(dic)
('height', 173)
{'name': 'jiayi', 'age': 20}
6.键keys()、值values()、键值对items()
dic ={'name':'jiayi','age':20,'height':173}
print(dic.keys())
print(dic.values())
print(dic.items())
dict_keys(['name', 'age', 'height'])
dict_values(['jiayi', 20, 173])
dict_items([('name', 'jiayi'), ('age', 20), ('height', 173)])
 需要掌握的
1.get() (指定取出字典里key对应的那个value.如果字典里没有的话返回为None)
dic ={'name':'jiayi','age':20,'height':173}
print(dic.get('name')) #如果有就返回真的值
print(dic)
print(dic.get('hobby'))
print(dic.get('hobby','nick')) #如果有就返回真的值,如果没有,默认返回None。也可以设置返回的值
jiayi
{'name': 'jiayi', 'age': 20, 'height': 173}
None
nick
2.update() (字典 update() 函数把字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里。)
语法
dict.update(dict2)
dic ={'name':'jiayi','age':20,'height':173}
dic2 = {'hobby':'run'}
dic.update(dic2)
print(dic)
{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}
3.fromkeys() ( fromkeys() 函数用于创建一个新字典,以序列 seq 中元素做字典的键,value 为字典所有键对应的初始值。)
语法
dict.fromkeys(seq[, value])
dic=dict.fromkeys(['name','age','height'],None)
#fromkeys由dict,key来自于容器,值来自于后面定义的value
print(f"dic:{dic}")
{'name': None, 'age': None, 'height': None}
4.setdefault() (setdefault() 方法和 get()方法 类似, 如果键不已经存在于字典中,将会添加键并将值设为默认值。也就是会把不在的这个给添加上)
语法
dict.setdefault(key, default=None)
# 有指定key不会改变值;无指定key则改变值
dic ={'name':'jiayi','age':20,'height':173}
print(dic.setdefault('name'))
print(dic)
print(dic.setdefault('hobby','run'))
print(dic)
jiayi
{'name': 'jiayi', 'age': 20, 'height': 173}
run
{'name': 'jiayi', 'age': 20, 'height': 173, 'hobby': 'run'}
三、有一个值还是多个值
多个值
四、有序(索引)or无序(索引)
无序
五、可变or不可变
可变
dic ={'name':'jiayi','age':20,'height':173}
print(id(dic))
dic['name'] = 'yanjiayi'
print(id(dic))