字典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)])