网页设计电商网站,手机网站怎么做的好处,平面设计 网站推荐,wordpress新建页面位置文章目录 9、字典的定义10、字典的增加11、字典的删除12、字典的修改13、字典的查询14、字典的遍历 9、字典的定义
格式#xff1a;变量 {key1 : value1, key2: value2…}空字典定义#xff1a; {}dict#xff08;#xff09; 字典中键不能重复#xff0c;是唯一的… 文章目录 9、字典的定义10、字典的增加11、字典的删除12、字典的修改13、字典的查询14、字典的遍历 9、字典的定义
格式变量 {key1 : value1, key2: value2…}空字典定义 {}dict 字典中键不能重复是唯一的但是值可以重复字典中的键要见名知意体现字典可以见名知意的特性
# 字典:储存多个数据,以键值对形式存储,方便快速存取
# 字典的键要见名知意# 字典定义格式: 变量 {键1:值1, 键2:值2.....}
dict1 {name: xiaoming, age: 18, gender: 女}
# 使用print打印可以显示字典中的所有数据
print(dict1)
# 查看字典类型
print(type(dict1)) # class dict# 空字典定义方法
dict2 {}
# 或者
dict3 dict()
print(dict2, dict3)
print(type(dict2), type(dict3))# 见名知意的重要性
# 需求: 使用字典保存一个人的信息 xiaoming 18 男 001
# 保存方式一:
# dict4 {name: xiaoming, age: 18, gender: 男, 学号: 001}
# print(dict4)
# 保存方式二:
# 字典的优势是快速存取,注意命名键的时候要见名知意,并且易于记忆
# 字典占用空间远大于列表,使用字典存储数据本来就是牺牲空间确保时间,所以要尽量利用字典快速存取的特性,而不要想空间的节省
# dict5 {xiaoming:18, 男:001} # 不建议这样写# 定义字典时 ,不能有重复的键,否则后定义的键值对会覆盖先定义的dict6 {name: xiaoming, age: 18, name: rose}
# 字典中的键是惟一的,后定义的内容值会覆盖先定义的
print(dict6)# 字典中键是唯一的但是值可以随意重复
dict7 {name: 小明, age: 18, id: 18}
print(dict7)10、字典的增加
字典[新的key] 值如果key在原字典中已经存在则为修改原key对应的值
# 增 使用新的键 值的形式增加键值对
dict1 {name:xiaoming, age: 18}
# 使用新的键 值
# 格式:字典变量[key] 值 如果为新增,则key在原字典中不存在
dict1[gender] 男
print(dict1) # {name: xiaoming, age: 18, gender: 男}# 如果原字典中存在该key 则为修改原key所对应的值
dict1[name] xiaowang
print(dict1) # {name: xiaowang, age: 18, gender: 男}# update
# 一般用于两个字典间的拼接
# 如果update中添加的键已经存在则修改原有的值
dict1.update({id: 001, color: yellow, name: rose})
print(dict1)11、字典的删除
del 查找到字典的键所对应的值进行删除clear清空字典所在数据空间中的多有键值对pop删除指定键所对应的键值对会将删除的键值对所对应的值进行返回popitem 删除随机一个键值对尝试后发现总是删除最后一个会将删除的键值对以元组的形式进行返回
# del
# 使用del删除键值对,先要找到dict所对应的键,进行删除
# 注意,在字典中键值对是成对出现的,删除键值也就消失了,不能出现单独的键或者单独的值
dict1 {name: xiaoming, age: 18}
del dict1[age]
print(dict1) # {name: xiaoming}# clear() 清空字典
# 使用clear将字典所对应的内存空间中的数据进行了清空
dict1.clear()
print(dict1) # {}# 通过之前的学习经验我们猜测 pop是删除简直对用的
dict2 {name: xiaoming, age: 18, gender: 男}
# 使用pop可以根据指定的key删除键值对
# 使用pop删除键值对后会将其键对应的值进行返回
# print(dict2.pop(name)) # xiaoming
# print(dict2) # {age: 18, gender: 男}# 猜测:popitem也是删除键值对使用的
# 随机删除一个键值对,一般都是删除最后一个
# 删除后会将我们所删除的键值对以元组的形式进行返回
print(dict2.popitem()) # (gender, 男)
print(dict2.popitem()) # (age, 18)
print(dict2) # {name: xiaoming}# dict 无序的 因为其不能通过索引进行键值对的获取(了解)
# Python3.5以后,字典中键值对的顺序和我们插入键值对的顺序保持一致,但是该顺序没法被利用(了解)12、字典的修改
字典[key] 值 字典中key必须存在 update update键 值update{键值}对应的键一定存在
# 通过索引修改字典中的键值对
dict1 {name:小明, age:18}
dict1[name] 小红
print(dict1)# update
# 可以进行制定字段值的修改
# dict1.update(name小绿)
dict1.update({name: 小绿})
print(dict1)13、字典的查询
使用键查询值字典[key] 查询的键不存在时则报错 get字典.get(key) 查询的键不存在时不报错可以默认返回None或者手动设置返回内容 keys获取所有的键values获取所有的值items获取所有的键值对组成的元组
# 直接使用key进行查询
dict1 {name: 小明, age: 18, gender: 男, id: 001}
# 查询学员的名称?
print(dict1[name])# get查询
# 如果我们查询的键不存在会真么样??? 报错
# KeyError: apple 会出现keyerror 表示查询的键不存在 报错
# print(dict1[apple])
# 使用get进行查询,只需要在get中传入对应的键即可
# 如果使用get查询的键不存在,则不会报错,会默认返回一个None
print(dict1.get(name)) # 小明
print(dict1.get(apple)) # None
# 如果查询的键不存在,get可以自定义默认返回值
# 格式 字典.get(要查询的键, 查询的键不存在时返回的数据)
print(dict1.get(apple, 小刚))
print(dict1.get(apple, 9))# keys 获取当前字典中所有的键
print(dict1.keys()) # dict_keys([name, age, gender, id])
# keys返回的内容不是列表,而是dict_keys,该数据类型不能直接使用索引查询数据,但是可以进行for遍历
print(type(dict1.keys())) # class dict_keys
keys_1 dict1.keys()
# 不能使用索引查询
# TypeError: dict_keys object is not subscriptable
# print(keys_1[1])
# 可以被迭代
for i in keys_1:print(i)# values 获取当前字典中所有的值
print(dict1.values()) # dict_values([小明, 18, 男, 001])
# dict_values不能使用索引查询,但是可以迭代
print(type(dict1.values())) # class dict_values# items 获取当前字典中所有的键值对,键值对以元组形式展示
print(dict1.items()) # dict_items([(name, 小明), (age, 18), (gender, 男), (id, 001)])
# dict_items不能使用索引查询,但是可以迭代
print(type(dict1.items())) # class dict_items14、字典的遍历
# 字典的遍历
dict1 {name: 小明, age: 18, gender: 男, id: 001}# 使用for循环对字典进行遍历,默认获取的是字典的每一个键
for i in dict1:print(i)name
age
gender
id# 获取的是字典的每一个键
for i in dict1.keys():print(i)name
age
gender
id
# 获取的是字典的每一个值
for i in dict1.values():print(i)小明
18
男
001
# 获取的是字典中每一个键值对组成的元组
for i in dict1.items():print(i)(name, 小明)
(age, 18)
(gender, 男)
(id, 001)# 有没有办法可以分别拿到字典的键和值呢?for i in dict1:print(i, dict1[i])for key, value in dict1.items():print(key, value )