第五天
字典
数据类型:
可变(不可哈希) 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=
-
方式二
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=
dic.setdefault("hobby","女")
dic=
dic.setdefault("age",35)
dic=
删
{"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'))

浙公网安备 33010602011771号