«
字典

时间:2022-8-17     作者:李泽信     分类: python基础


字典dictionary

字典是另外一种可变容器类型,且可以存储任意类型对象。列表元素进行修改的话,通过索引进行修改,如果当前元素的顺序发生改变,此时还需要修改索引才能完成修改。然而字典既能存储多个数据,又能方便准确的定位元素。

创建字典

语法:
字典名 = {key1:value1,key2:value2,...}
示例:
student = {'name':'tom','age':18,'sex':'男'}

访问字典

students = {'name':'张三','age':18,'address':'北京'}
print(students['name'])     #根据key找到值
返回结果:
张三

修改字典

通过找到指定的key进行修改

students = {'name':'张三','age':18,'address':'北京'}
students['name'] = '李四'
print(students)
返回结果:
{'name': '李四', 'age': 18, 'address': '北京'}

添加字典元素

students = {'name':'张三','age':18,'address':'北京'}
students['hobby'] = '足球'
print(students)
返回结果:
{'name': '张三', 'age': 18, 'address': '北京', 'hobby': '足球'}

删除字典

del 字典名[key]:指定key删除

students = {'name':'张三','age':18,'address':'北京'}
del students['address']     #指定key删除元素
print(students)
返回结果:
{'name': '张三', 'age': 18}

del 字典名:删除字典

students = {'name':'张三','age':18,'address':'北京'}
del students    #删除字典,删除后结果为NameError: name 'students' is not defined,未定义
print(students)
返回结果:
NameError: name 'students' is not defined

字典名.clear():清空整个字典元素,保留一个空的字典

students = {'name':'张三','age':18,'address':'北京'}
students.clear()
print(students)
返回结果:
{}

字典函数

len(dict):计算字典中元素的个数

dict1 = {'name':'tom','age':18,'sex':'男','hobby':'足球'}
print(len(dict1))
返回结果:
4

str(dict):输出字典,也可打印的字符串表示

dict1 = {'name':'tom','age':18,'sex':'男','hobby':'足球'}
str1 = str(dict1)
print(str1)
print(type(str1))   #判断str1的数据类型
返回结果:
{'name': 'tom', 'age': 18, 'sex': '男', 'hobby': '足球'}
<class 'str'>

type(variable):返回输入变量的数据类型,如果变量是字典就返回<class 'dict'>

dict1 = {'name':'tom','age':18,'sex':'男','hobby':'足球'}
print(type(dict1))
返回结果:
<class 'dict'>

dict.fromkeys(seq[,value]):创建一个新字典,以序列seq元素做字典的值,value为字典所有键对应的初始值

seq = ('name','age','sex')
dict1 = dict.fromkeys(seq)
print("新字典为:",dict1)
dict2 = dict.fromkeys(seq,'jack')
print("新字典为:",dict2)
返回结果:
新字典为: {'name': None, 'age': None, 'sex': None}
新字典为: {'name': 'jack', 'age': 'jack', 'sex': 'jack'}

dict.get(key,default=None):返回指定键的值,如果值不在字典中返回default值,如果字典存在该key对应的元素,就输出原值,否则输出该key输入值

dict1 = {'name':'tom','age':18}
print("age键的值为:",dict1.get('age',9))
print("sex键的值为:",dict1.get('sex','男'))
返回结果:
age键的值为: 18
sex键的值为: 男

key in dict:如果key在字典dict中则返回True,否则返回False

dict1 = {'name':['tom','jack'],'age':19,'sex':'男','hobby':'足球'}
if 'name' in dict1:
    print("键name在字典中存在")
else:
    print("键name在字典中不存在")
返回结果:
键name在字典中存在

dict.keys():以列表返回一个字典所有键名

dict1 = {'name':['tom','jack'],'age':19,'sex':'男','hobby':'足球'}
print(dict1.keys())
返回结果:
dict_keys(['name', 'age', 'sex', 'hobby'])

dict.setdefault(key,default=None):和get类似,但如果键不存在字典中,将会添加键并将值设为default

dict1 = {'name':'tom','age':19}
print("age键的值为:",dict1.setdefault('age',9))
print("sex键的值为:",dict1.setdefault('sex','男'))
print("新字典为:",dict1)
返回结果:
age键的值为: 19
sex键的值为: 男
新字典为: {'name': 'tom', 'age': 19, 'sex': '男'}

dict.values():以列表返回一个字典中的所有值

dict1 = {'name':'tom','age':19}
print(dict1.values())
print(dict1.items())    #将键值对返回并且返回至元组中
返回结果:
dict_values(['tom', 19])
dict_items([('name', 'tom'), ('age', 19)])