python基础-字典dict及内置方法
字典-dict
-
用途:
-
定义方法:通过{} 来存储数据,通过key:value (键值对)来存储数据,每个键值对通过逗号分隔。在键值对中,key 是不可变的数据类型,value 是任意数据类型
def dict_setd(): # 第一种定义方式 d1 = {'name': 'egon', 'age': 84} # 第二种定义方式 d2 = dict({'name': 'egon', 'age': 84}) # 第三种定义方式 l1 = ['name', 'age'] l2 = ['egon', 18] z1 = zip(l1, l2) d3 = dict(z1) # 打印定义的字典 print(d1) print(d2) print(d3) dict_setd()
常用方法:
-
按照key : value 映射关系取值,可存可取
# 按照key:value映射关系取值,可存可取。 def dict_getvalue(): d1 = {'name': 'egon', 'age': 73} print(d1) # 取出d1 中的值 # 当字典中存在key 时,修改value值,如果key 不存在,新增键值对 d1['name'] = 'alex' d1['gender'] = 'male' print(d1) dict_getvalue()
-
成员判断 in / not in ,返回布尔值
# 成员运算in / not in:判断key 是否在字典中存在(不是判断value),返回布尔值 def dict_in(): d1 = {'name': 'egon', 'age': 73} print('egon' in d1) dict_in()
-
len:获取当前字典中键值对的个数
# len:获取当前字典中键值对的个数 def dict_len(): d = {'name': 'alex', 'age': 73, 'gender': 'male'} print(len(d)) dict_len()
-
get:获取指定key 的值,如果值不存在,默认返回None,可修改默认的返回值
# get:获取指定key 的值,如果值不存在,默认返回None,可修改默认返回值 def dict_get(): d = {'name': 'alex', 'age': 73} print(d.get('gender')) # 结果None print(d.get('gender', 'male')) # 结果male dict_get()
-
keys,values,items:获取字典中的key,value,键值对
# keys,values,items def dict_kvi(): d = {'name': 'alex', 'age': 73} print(d.keys()) # 结果为:返回所有键的列表:['name','age'] print(d.values()) # 结果为:返回所有值的列表:['alex',73] print(d.items()) # 结果为:返回所有的键值对,其中返回值是以列表套元组的形式体现,每一个键值对都存在元组中 # 根据键值对或者key 和value for key, value in d.items(): print(key, value) dict_kvi()
-
pop:通过指定的key 弹出对应的键值对,返回值为键值对中的值
# pop:删除,将指定的key 弹出,返回值为key 对应的value def dict_pop(): d = {'name': 'alex', 'age': 73, 'gender': 'male'} a = d.pop('name') print(d) # 字典中不再有'name':'alex'这个键值对 print(a) # 'name' 对应的值:alex dict_pop()
-
popitem:随机弹出一组键值对,返回值是以元组形式表示的键值对信息
# popitem:随机将一组键值对弹出,返回值为以元组展示的键值对 def dict_popitem(): d = {'name': 'alex', 'age': 73, 'gender': 'male'} a = d.popitem() print(a) print(d) dict_popitem()
-
update:用新字典替换旧字典
# update:用新字典替换就字典 def dict_upd(): d = {'name': 'alex', 'age': 73, 'gender': 'male'} d.update({'hobby':'read'}) # 当要替换的键值对不存在时,将该键值对添加到字典中 d.update({'name':'egon'}) # 当要替换的键值对存在时,直接修改该键值对的值 print(d) dict_upd()
-
fromkeys:生成一个新字典,需要两个参数。第一个参数必须是可迭代对象,这里会以可迭代对象中的元素依次作为字典中的key,第二个参数则为key 的value 值,组成一个新的字典
# dict.fromkey:生成一个新字典,第一个参数为可迭代对象,将可迭代对象中的元素依次作为key , # 第二个参数作为可迭代对象中元素的value ,组成一个新字典 def dict_fromkey(): print(dict.fromkeys([1,2,3],['ke','k1'])) dict_fromkey()
-
setdefault:指定的key 存在时,不修改键值对的内容,并返回键值对的value 值;如果不存在,则将指定的key 和value 作为新的键值对增加到字典中,并返回该value
# setdefault:字典中不存在指定的key 时,新增该键值对,并返回value;如果存在,不修改键值对,并返回value def dict_sd(): d = {'name': 'alex', 'age': 73, 'gender': 'male'} print(d.setdefault("hobby","read")) print(d) print(d.setdefault("name","egon")) print(d) dict_sd()
-
字典dict 是无序的、可变的、可存多个值的数据类型