字典(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}
字典为无序 可变 多个值的类型