day5 字典的相关用法
字典的一些相关操作方法
一,字典是python中唯一的一个映射类型,且键是唯一的不可变的数据类型.在保存的时候,根据key来计算一个内存地址, 然后将key-value保存在这个地址中.这种算法被称为hash算法.
不可变的数据类型有字符串, 数字,元组,布尔类型
可变数据类型: 列表,集合,字典
注意字典的值是没有限制的
二,字典的增删改查
1增 dic[key]=value, 如果dic中没有出现key,就会增加进dic中,如果有,就会改变key对应的值
dic.setdefault(),如果dic中没有出现key,就会增加进dic中,如果有,不会更改key对应的值
2 删(pop, popitem, clear del)
ret = dic.pop("jay") print(ret) del dic["jay"] print(dic) # 随机删除. ret = dic.popitem() # 清空字典中的所有内容 dic.clear()
print(ret)# 得到空字典
del dic #直接删除字典
prinr(ret)#会报错
del dic[key]
3 修改
dic = {"id": 123, "name": 'sylar', "age": 18}
dic1 = {"id": 456, "name": "麻花藤", "ok": "wtf"}
dic.update(dic1) # 把dic1中的内容迭代更新到dic中. 如果key重名. 则修改替换. 如果不存
在key, 则新增.
print(dic)
print(dic1)
dic[key] = value #强制修改
4. 查询
查询一般用key来查找具体的数据.
print(dic['name']) # print(dic['sylar']) # 如果key不存在会报错 print(dic.get("ok")) print(dic.get("sylar")) # None print(dic.get("sylar", "⽜牛B")) # ⽜牛B
dic.setdefault(key)#找到返回对应值,找不到返回none
for 循环
5. 其他相关操作
dic = {"id": 123, "name": 'sylar', "age": 18, "ok": "科⽐比"}
print(dic.keys()) # dict_keys(['id', 'name', 'age', 'ok']) 不用管它是什么.当
成list来用就行
for key in dic.keys():
print(key)
print(dic.values()) # dict_values([123, 'sylar', 18, '科比']) 一样. 也当
list来用
for value in dic.values():
print(value)
print(dic.items()) # dict_items([('id', 123), ('name', 'sylar'), ('age',
18), ('ok', '科⽐比')]) 这个东⻄西也是list. 只不过list中装的是tuple
for key, value in dic.items(): # ?这个是解构
print(key, value)# 得到的不是元组,解构了
# 解构
a, b = 1, 2
print(a, b)
(c, d) = 3, 4
print(c, d)
e, f = [1, 2, 3] # 解构的时候注意数量量必须匹配
print(e, f)
三. 字典的嵌套
# 字典的嵌套 dic1 = { "name": "汪峰", "age": 18, "wife": { "name": '章⼦子怡', "age": 28 }, "children": ['第⼀一个⽑毛孩⼦子', '第⼆二个⽑毛孩⼦子'], "desc": '峰哥不不会告我吧. 没关系. 我想上头条的' } print(dic1.get("wife").get("name")) print(dic1.get("children")) print(dic1.get("children")[1])

浙公网安备 33010602011771号