什么是字典?以及字典的增删改查?

字典:储存多个数据已键值对的形式存储方便快速存取

字典的键要见明之意

字典定义格式:变量 = {键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不能使用索引查询,但是也可以迭代

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值