认识字典
1. 引入
当要存储的数据是有对应关系的时候,使用可以使用两个相对应的列表,但是这样操作起来会很麻烦,所以使用字典去存储会更简洁、更方便使用。在字典中,习惯将元素对应的索引号称为‘键(key)’,各个键对应的元素称为‘值’,键及其对应的值称为‘键值对’
2. 字典概念
字典是python中唯一的映射类型数据,'映射’是指元素之间有相互对应的关系,即通过一个元素(键),可以找到另一个元素(值)
字典元素的存储方式:字典的一个元素是三个部分:键:值,这三个部分一个都不能少。字典中元素以 {键:值, 键:值,……}的形式存储,每一个元素之间用‘,’隔开。
3. 字典的特点
字典是可变的序列(数据类型),这里的可变是指只能修改‘值’
1.字典中的键必须是唯一的:字典中,不支持同一个键出现多次,否则只会保留最后一个键值对
2.字典中的键必须不可变,所以字典中的‘键’只能用不可变的数据类型:字符串、元组、数值类型;字典的可变指的是它的‘值’是可变的,所以‘值’可以是任意数据类型。
字典的创建
1. 直接创建
a = {}#创建一个空字典
print(a,type(a))#{} <class 'dict'>
b = {'name':'xiaoming','age':'18'}
print(b)#{'name':'xiaoming','age':'18'}
print(len(b))#2
2. 通过dict()映射创建
格式:dict(键=值, 键=值, ……),这里元素的创建类似变量的创建。注意:使用此方式创建字典时,键只能是字符串字母(一般这样对应数据),并且键写字符串时不能带引号,值是字符串时必须带引号
a = dict(name = 'xiaoming',age = 18)
print(a)#{'name':'xiaoming','age':18}
注意: 字典的键不能重复,如果重复出现,后面键所对应的值会替换前面键所对应的值
a = {'name':'xiaoming','age':18,'age':20}
print(a)#{'name':'xiaoming','age':20
字典的增删改查
1. 查找
如何访问(查找)字典中的元素(如何获取字典中的元素):
1.通过for循环遍历;(这个是只取‘键’)
a = {'name':'xiaoming','age':'18'}
for i in a:
print(i)#name age
2.通过‘键’取‘值’:类似生活中的通过音节查汉字,相当于通过‘列头’找‘列数据’
(这个是只取‘值’);
a = {'name':['xiaoming','xiaoli'],'age':[18,20]}
#输出所有姓名
print(a['name'])#'xiaoming','xiaoli'
3.通过get()访问(获取)。(这个也是只取‘值’)
a = {'name':'xiaoming','age':'18'}
b = a.get('age')
print(b)#18
c = a.get('sex')#如果获取字典中不存在的键
print(c)#None
2. 修改和添加
1.通过获取‘键’来修改对应的‘值’,当获取的‘键’不存在时,会直接添加进行作为新的‘键值对’
a = {'name':'xiaoming','age':'18'}
a['age'] = 20
print(a)#'name':'xiaoming','age':'20'
a['sex'] = '男'
print(a)#'name':'xiaoming','age':'20','sex':'男’
2.通过setdefault()查找’值’,当获取的‘键’不存在时,会直接添加进行作为新的‘键值对’
a = {'name':'xiaoming','age':'18'}
b = a.setdefault('age')
print(b)#18
c = a.setdefault('sex')
print(c)#None
c = a.setdefault('', '这个键不存在')
print(a)#{'name': 'xiaoming', 'age': '18', 'sex': '这个键不存在'}
3.通过update()修改‘键值对’,当不存在时会直接添加进去。
a = {'name':'xiaoming','age':'18'}
b = {'age':20}
a.update(b)
print(a)#{'name': 'xiaoming', 'age': 20
a.update({'age':30})
print(a)#{'name': 'xiaoming', 'age': 30}
a.update({'sex':'男'})
print(a)#{'name': 'xiaoming', 'age': '18', 'sex': '男'}
3. 删除
1.pop()函数,指定删除键值对,格式:字典或变量名.pop(键)
a = {'a':1,'b':2,'c':3,'d':4}
b = a.pop('a')
print(b)#1
print(a)#{'b': 2, 'c': 3, 'd': 4}
2.popitem()函数,随即删除键值对,格式:字典或变量名。popitem()
a = {'a':1,'b':2,'c':3,'d':4}
b = a.popitem()
print(b)#('d', 4)
print(a)#{'a': 1, 'b': 2, 'c': 3}
3.clear()函数,清空字典
a = {'a':1,'b':2,'c':3,'d':4}
a.clear()
print(a)#{}
其他特定函数
1.keys():用于获取字典中的所有‘键’
a = {'a':1,'b':2,'c':3,'d':4}
b = a.keys()
print(b)#dict_keys(['a', 'b', 'c', 'd'])
2.values():用于获取字典中的所有‘值’
a = {'a':1,'b':2,'c':3,'d':4}
b = a.values()
print(b)#dict_values([1, 2, 3, 4])
3.items():用于获取字典中的所有的‘键值对’
a = {'a':1,'b':2,'c':3,'d':4}
b = a.items()
print(b)#dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])