字典是一种容器类型的数据类型(序列),储存的数据以键值对的形式出现。
字典中的元素全部都是键值对。
字典是可变的,但是是无序的。
键是唯一的。
键值对:键:值(key:value)
key是形式,值才是真正要存的内容
键:理论上可以是任何不可变的数据类型,但实际开发的时候一般使用字符串作为key
值:任何数据类型
声明一个字典
创建一个字典变量
dict1 = {}
print(type(dict1))
dict2 = {'index': 1, 'data': 'name'}
print(dict2)
"""
将其他数据类型转换成字典
"""
dict3 = dict([(1, 2), (2, 3)])
print(dict3)
字典的增删查改
查:获取字典的元素的值
字典获取元素的值是通过key来获取的
字典[key]
字典.get(key)
区别:如果key不存在,前者报错,后者返回None
注意:如果key值确定存在,使用[]语法获取;不确定key值是否存在才使用get方法去获取值
person = {'name': 'Tom', 'age': '18', 'face': '66'}
print(person['name'])
print(person.get('asd'))
增\改元素:
通过key获取字典元素,然后赋值。当key本身就存在的时候,就是修改元素的值;不存在的时候就是给字典添加键值对。
person['height'] = 1.8
print(person)
person['age'] = 22
print(person)
删除:删除的是键值对
del dict[key] ----注意:key不存在会报错
dict.pop(key) ----会返回删除键值对对应的值
del person['face']
print(person)
age = person.pop('age')
print(person, age)
相关的数组属性
dict.keys():获取字典所有的key,返回值的类型是dict_key,但是可以把它当成列表来使用。
dict.values():获取字典所有的值。
dict.items():将字典中所有的键值对转换成一个一个的元组,key作为元组的第一个元素;value作为元组的第二个元素。
student_dict = {'name': 'GHope', 'studen_id': 'py180501', 'score': {'English': 90, 'Math': 99}}
keys = student_dict.keys()
print(keys)
# 遍历获取每个key
for key in keys:
print(key)
print(student_dict.values())
print(student_dict.items())
遍历字典
直接遍历字典获取到的是所有的key(推荐使用)
遍历直接获取到key和value(不推荐使用)
for key in student_dict:
print(key, student_dict[key])
for key, value in student_dict.items():
print(key, value)
列表中有字典、字典中有字典、字典中有列表
声明一个变量,作用是用来存储一个班级的学生的信息。其中学生的信息包括姓名、性别、年龄、电话(至少存三个)。
class_information = []
dict_information = {}
while True:
name = input('请输入你的名字:')
dict_information['name'] = name
sex = input('请输入你的性别:')
dict_information['sex'] = sex
age = input('请输入你的年龄:')
dict_information['age'] = age
tel = input('请输入你的电话:')
dict_information['tel'] = tel
class_information.append(dict_information)
control = input("1、继续输入;\n 2、退出并输出信息")
if control == '2':
break
print(class_information)
class1 = [
{'name': '张三', 'age': 23, 'sex': '男', 'tel': '15300022777'},
{'name': '李四', 'age': 25, 'sex': '女', 'tel': '12779922'},
{'name': '王二麻子', 'age': 20, 'sex': '男', 'tel': '12553'}
]
class1 = {
'name': 'py1805',
'address': '19-1',
'students':[
{'name': '张三', 'age': 18},
{'name': '李四', 'age': 28},
{'name': '王五', 'age': 20},
]
}
其它操作
formkeys()
dict.formkeys(序列,值):创建一个新的字典,序列中的元素作为key,value作为值
in
key in dict: 判断字典中是否存在指定的key
updata
dict1.updata(dict2):使用dict2中的键值对对dict1进行更新操作。其中,如果不存在就添加;存在就更新。
new_dict = dict.fromkeys(range(10), 100)
print(new_dict)
dict1 = {'1': 'a', '2': 'b'}
dict1.update({'1': 'aaa', '3': 'bbb'})
print(dict1)