字典:储存多个数据已键值对的形式存储方便快速存取
字典的键要见明之意
字典定义格式:变量 = {键1:值1,键2:值2,.......}
dict1 = {'name':'xiaoming','age':18,'gender':'女'}
#使用print打印可以显示字典中的所有数据
print(dict1)
#查看字典类型
print(type(dict1))
#空字典定义方法
dict2 = {}
#或者
dict3 = dict()
print(dict2,dict3)
print(type(dict2),(dict3))
#见明之意的重要性
#需求:使用字典保存一个人的信息 xiaoming 18 男 001
dict4 = {'name':'xiaoming','age':18,'gender':'男','学号':'001'}
print(dict4)
#保存方式2
#字典的优势就是快速存取,注意命名键的时候要见明之意,并且易于记忆
#字典占用空间远大于列表,使用字典存储数据本来就是牺牲空间确保时间,所以尽量利用字典快速存取的特性,而不想要空间的节省
#不建议这样写
dict5 = {'xiaoming':18,'男':'001'}
#定义字典时,不能有重复的键,否则后定义的键值对会覆盖先定义的
#定义字典时,不能有重复的键,否则后定义的键值对会覆盖先定义的
dict6 = {'name':'xiaoming','age':18,'name':'rose'}
#字典中的键是唯一的,后定义的内容值会覆盖先定义的
print(dict6)
#字典中唯一的键是唯一的但是值可以随意重复
dict7 = {'name':'小明','age':18,'id':18}
print(dict7)
字典的增加:
使用新的键 = 值的形式增加键值对
#格式:字典变量[key] = 值 如果为新增。则key在原字典中不存在
dict1 = {'name':'xiaoming','age':18}
#使用新的键 = 值
#格式:字典变量[key] = 值 如果为新增。则key在原字典中不存在
dict1['gender'] = '男'
print(dict1)
#如果原字典中存在key 则为修改原key所对应的值
dict1['name'] = 'xiaowang'
print(dict1)
dict1.update({'id':'001','color':'yellow','name':'rose'})
#一般用于两个字典间的拼接
print(dict1)
字典的删除:
#del 使用del删除键值对,先要找到dict所对应的值,进行删除
dict1 = {'name':'xiaoming','age':18}
del dict1['age']
print(dict1)
#clear将字典所对应的内存空间中的数据进行了清空
dict1.clear()
print(dict1)
#pop是删除键值对用的
dict2 = {'name':'xiaoming','age':18,'gender':'男'}
#使用pop删除键值对后会将其键对应的值进行返回
print(dict2.pop('name'))
print(dict2)
#popitem也是删除键值对使用的 (随机删除一个键值对,一般都是删除最后一个,删除后会将我们所删除的键值对以元组进行返回)
print(dict2.popitem())
print(dict2.popitem())
print(dict2)
#dict无序的 因为其不能通过索引进行键值对的获取
#Python3.5以后,字典中键值对的顺序和我们插入键值对的顺序保持一致,但是该顺序没法被利用
字典的修改
#通过索引修改字典中的键值对
dict1 = {'name':'小明','age':18}
dict1['name'] = '小红'
print(dict1)
#update
dict1.update({'name':'小绿'})
#dict1.update(name='小绿') 可以进行指定字段的修改
print(dict1)
字典的查询:
#直接使用key进行查询
dict1 = {'name':'小明','age':18,'gender':'男','id':'001'}
print(dict1['name'])
#get查询
#如果我们查询的键不存在会怎么样???
#print(dict1['apple']) KeyError: 'apple' 表示查询的键不存在
#使用get进行查询的时候,只需要在get中传入对应的键即可
#如果使用get进行查询的键不存在,则不会报错,会默认返回一个none
print(dict1.get('name'))
print(dict1.get('apple'))
#如果查询的键不存在,get可以自定义返回默认值
#格式 字典。get(要查询的键,查询的键不存在是返回的数据)
print(dict1.get('apple','小刚'))
print(dict1.get('apple',9))
#keys 获取当前字典中所有的键
print(dict1.keys())
print(type(dict1.keys()))
key_1 = dict1.keys()
#不能使用索引查询 可以被迭代
#print(key_1[1]) TypeError: 'dict_keys' object does not support indexing
for i in key_1:
print(i)
#values 获取当前字典中所有的值
print(dict1.values())
print(type(dict1.values()))
#dict_values不能使用索引查询,但是也可以迭代
#items 获取当前字典中所有的键值对,键值对以元组的形式展示
print(dict1.items())
print(type(dict1.items()))
#dict1_items不能使用索引查询,但是也可以迭代