基本数据类型及内置方法之字典

天大地大妈咪最大 提交于 2019-12-03 20:36:54

字典(dict)

定义方式:通过大括号存储数据,通过key:value来定义键值对数据, 其中value可以是任意类型,而key则必须是不可变类型 ,因为str类型会对value有描述性的功能,每个键值对中间通过逗号分割

三种定义方式

#第一种d1 = {'name': 'sean'}#第二种d1 = dict(name= 'sean')#第三种zipl1 = ['name', 'age']l2 = ['sean', 18]z1 = zip(l1, l2)print(dict(z1)){'name': 'sean', 'age': 18}

类型转换

# 转换1: >>> info=dict([['name','tony'],('age',18)])>>> info{'age': 18, 'name': 'tony'}​# 转换2:fromkeys会从元组中取出每个值当做key,然后与None组成key:value放到字典中>>> {}.fromkeys(('name','age','sex'),None)  {'age': None, 'sex': None, 'name': None}

需要掌握

按照key:value的映射关系取值(可存可取)

#取l1 = {'name': 'sean', 'age': 18}print(l1['name'])sean​#赋值,如果key原先不存在于字典,则会新增key:valuel1 = {'name': 'sean', 'age': 18}l1['name'] = 'egon'print(l1){'name': 'egon', 'age': 18}l1['gender'] = 'female'print(l1){'name': 'egon', 'age': 18, 'gender': 'female'}

成员运算(in,not in)

l1 = {'name': 'sean', 'age': 18}print('name' in l1) #判断某个值是否是字典的keyTrueprint('name' not in l1)False

len()

#获取字典中键值对的个数l1 = {'name': 'sean', 'age': 18}print(len(l1))2

键keys(),值values(),键值对items()

l1 = {'name': 'sean', 'age': 18}print(l1.keys())dict_keys(['name', 'age'])print(l1.values())dict_values(['sean', 18])print(l1.items())dict_items([('name', 'sean'), ('age', 18)])

get()

#get()获取指定key的值,如果值不存在,默认返回None,可以通过第二个参数修改默认返回列表l1 = {'name': 'sean', 'age': 18}print(l1.get('name'))seanprint(l1.get('gender'))Noneprint(l1.get('gender', '*'))*

删除

#pop()指定key进行删除,返回值为对应的valuel1 = {'name': 'sean', 'age': 18}print(l1.pop('name'))sean#popitem随机弹出一个键值对,返回值为一个元组l1 = {'name': 'sean', 'age': 18}print(l1.popitem())('age', 18)

update()

#用新字典更新旧字典,有则修改,无则添加l1 = {'name': 'sean', 'age': 18}l1.update({'name':'egon'})print(l1){'name': 'egon', 'age': 18}l1.update({'gender': 'female'})print(l1){'name': 'egon', 'age': 18, 'gender': 'female'}

formkeys()

#生成一个新字典,第一个参数(列表),它会以第一个参数中的各个元素为key,以第二个参数为值,组成一个新字典l1 = dict.fromkeys(['a', 'b', 'c'], [1])print(l1){'a': [1], 'b': [1], 'c': [1]}

setdefault()

#key不存在,则新增键值对;key存在返回对应的valuel1 = {'name': 'sean', 'age': 18}l2 = l1.setdefault('gender', 'female')print(l2)femaleprint(l1){'name': 'sean', 'age': 18, 'gender': 'female'}​#key存在,则不做任何修改,并返回已存在key对应的value值l1 = dict.fromkeys(['a', 'b', 'c'], [1])l3 = l1.setdefault('name', 'egon')print(l3)seanprint(l1){'name': 'sean', 'age': 18}

字典为无序 可变 多个值的类型

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!