字典
数据类型:
可变(不可哈希) list dict set
不可变(可哈希) str int bool tuple
- 例如 对字符串操作之后 形成的是新的字符串 原字符串不改变
字典:{}括起来 键:对值
- 键 : 不可变类型 int str (bool tuple 几乎不用)
- 房间号
- 唯一
- 值:可以是任意类型
- 房间 放什么都行
字典3.5无序
3.6x 初次建立 顺序 但是学术上不认为是有序
3.7x以后都是有序的
优点:查询速度快,存储关联性数据
缺点:,空间换时间
创建方式
直接创建
dic = dcit(("one",1),("two",2),("three",3))
dic={"大王":"365","age":18}
方式二
dic=dict(one=1,two=2,three=3)
方式三
dic=dict({"one":1,"two":2,"three":3})
增
dic={"name":"太白","age":18}
第一种--有则改之,无则添加
- dic["sex"]="男"
- dic["age"]=23 #有则改之,无则添加 "age"已经有了 把他的18改为23
第二种--有则不变,无则添加
dic.setdefault("hobby")
dic={"name":"太白","age":18,"hobby":None}
dic.setdefault("hobby","女")
dic={"name":"太白","age":18,"hobby":"女"}
dic.setdefault("age",35)
dic={"name":"太白","age":18}
删
{"name":"太白","age":18}
第一种
pop
按照 键 删除 键值对
有返回值 返回 键的值
设置第二个参数时 ,无论字典中有无都不会报错
dic.pop("hobby")没有第二个参数 ,报错
dic.pop("hobby","没有此键")不报错 返回第二个参数值
#"没有此键"
ret=dic.pop("age")
print(ret) #18
第二种
clear
dic.clear()
print(dic)
#{}
第三种
del
按照 键 删除
del dic["age"]
del dic["age1"] #没有此键 ,报错
改
dic["name"]="小白"
查
第一种---不可取 ,会报错
{"name":"太白","age":18}
print(dic["name"])
print(dic["namee"]) 没有此键,报错
第二种
get
a=dic.get("name")
print(a)
#太白
a=dic.get("namee")
print(a)
#None
a=dic.get("namee","没有此键")
print(a)
#"没有此键"
三个特殊的--加上list 变成列表才能操作
{"name":"太白","age":18}
keys
print(dic.keys()) 得到一个特殊的类型
- 类型为 dict_keys 可以转化为列表
- list(dic.keys())
dict_keys(["name","age"])
打印所有键
for key in dic.keys():
print(key)
等价于
for key in dic:
print(key)
打印所有键值
values
print(dic.values())
dict_values(["太白","18"])
打印所有键值对
items
print(dic.items())
dict_items([("name","太白"),("age","18"))
for i in dic.items():
print(i)
("name","太白")
("age","18")
拆包
for a,b in dic.items():
print(a,b)
name 太白
age 18
dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} # # 请在字典中添加一个键值对,"k4": "v4",输出添加后的字典 # # 请在修改字典中 "k1" 对应的值为 "alex",输出修改后的字典 # # 请在k3对应的值中追加一个元素 44,输出修改后的字典 # # 请在k3对应的值的第 1 个位置插入个元素 18,输出修改后的字典 #1 # dic["k4"]="v4" print(dic) #2 dic["k1"]="alex" print(dic) #3 dic.get("k3").append(44) #dic["k3"]=dic.get("k3")这一行不用要 print(dic) #4 dic = {'k1': "v1", "k2": "v2", "k3": [11,22,33]} dic.get("k3").insert(0,18) #dic["k3"]=dic.get("k3")这一行不用要 print(dic)
嵌套
dic = { 'name':'汪峰', 'age':48, 'wife':[{'name':'国际章','age':38}], 'children':{'girl_first':'小苹果','girl_second':'小怡','girl_three':'顶顶'} } # 1. 获取汪峰的名字。 print(dic.get("name")) print(dic["name"]) # # 2.获取这个字典:{'name':'国际章','age':38}。 print((dic.get("wife"))[0]) print(dic['wife'][0]) # # 3. 获取汪峰妻子的名字。 print(dic.get("wife")[0].get("name")) print(dic['wife'][0]['name']) # # 4. 获取汪峰的第三个孩子名字。 print(dic['children']['girl_three']) print(dic.get("children").get('girl_three'))
来源:https://www.cnblogs.com/xueba/p/12344668.html