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])

 

posted @ 2018-08-01 23:57  团子emma  阅读(181)  评论(0)    收藏  举报