1.回顾
容器
2. 字典
2.1 字典的定义和访问
"""
字典:
key - value 键值对
dict1={key:value,....,}
key:的数据类型可以是字符串,数字
value: 任意类型
"""
# 定义空字典
dict4={}
dict5=dict()
print(dict4,type(dict4))
print(dict5,type(dict5))
# 非空字典
dict1={"语文":90,'英语':60,'体育':20}
print(dict1,type(dict1))
dict2={1:"张三",2:"王五"}
print(dict2)
# 元组也行
dict3={(2,):"one",(3,):"two"}
print(dict3)
# list不可以作为字典的键值
# dict4={[1,2]:"one",[3,4]:"two"}
# print(dict4)
# 字典的访问,通过key来访问value
dict6 ={"0001":"大数据一班","0002":"大数据二班",3:"大数据三班",4:["java","#c","python"]}
v1=dict6[3]
print(v1)
print(dict6["0001"])
print(dict6[4])
# 如果没有该键值则报错
# print(dict6[0])
# 如果使用 dict.get(key) 当key不存在则返回None
print(dict6.get(0))
# 连个参数,第一个参数为key值,如果key值存在则返回原字典中value值
# 如果 key值不存在,则返回给定的value值。
obj = dict6.get(0,"one")
print(dict6)
print(obj)
2.2 字典中添加和修改数据
# 字典中添加数据
dict1={}
print(dict1)
dict1.update({"数学":90})
dict1.update({"语文":100})
# 修改
dict1.update({"语文":20})
print(dict1)
# 字典中的key值不能重复
dict2={"体育":40,"化学":60,"体育":50}
print(dict2)
2.3 字典中删除数据
# 根据key值使用 del 字典名[key] 删除
dict1={1:'男',2:'女',3:'未知'}
print(dict1)
# 删除最后一个
del dict1[3]
print(dict1)
# dict1.pop(key) 返回值为删除的value值
print(dict1.pop(2))
print(dict1)
# dict1.clear() 清空字典
# dict1.clear()
print(dict1)
del dict1 # 删除dict1 变量 ,后面不能再使用,除非再次定义
2.4 字典中遍历数据
1. for 循环直接遍历字典, 遍历的是字典的 key 值
# 遍历
dict1={"java":90,"python":99,"javaweb":89,"#c":100}
for key in dict1:
print(key,dict1[key])
2. 字典.keys()
# 遍历
dict1={"java":90,"python":99,"javaweb":89,"#c":100}
for key in dict1:
print(key,dict1[key])
# dict.keys()
"""
返回值是 dict_keys类型
1.可以使用list()转换为list类型
2.可以使用for进行遍历
"""
dict1_keys= dict1.keys();
print(type(dict1_keys))
dict1_list = list(dict1_keys)
print(dict1_list,type(dict1_list))
for key in dict1_list:
print(key,dict1[key])
3. 字典.values()
# dict.values()
"""
返回值是dict_values
1.可以可以通过list()转换为list
2.可以通过for遍历
"""
dict1_values=dict1.values()
print(dict1_values,type(dict1_values))
4. 字典.items()
# dict.items()
"""
返回的是一个dict_items类型,由key,value组成的元组类型
1.可以使用list()转换
2.for遍历
"""
dict1_items = dict1.items()
print(dict1_items,type(dict1_items))
dict1_list=list(dict1_items)
print(dict1_list)
for item in dict1_items:
print(item)
2.5 enumerate 函数
"""
enumerate()可以将序列容器转成 键值对(下标(key),和具体的元素值(value)构成的元组
"""
list1=['a','b','d','e']
for i in list1:
print(list1.index(i),i)
dict1={}
for j in enumerate(list1):
print(j)
dict1.update({j})
print(dict1)
2.6 公共方法
-
+
支持 字符串、列表、元组进行操作, 得到一个新的容器 -
* 整数
复数, 支持 字符串、列表、元组进行操作, 得到一个新的容器 -
in/not in
判断存在或者是不存在,支持 字符串、列表、元组、字典进行操作, 注意: 如果是字典的话,判断的是 key 值是否存在或不存在 -
max/min
对于字典来说,比较的字典的 key值的大小
dict1={'ab':10,'ba':20,'cd':30,'ca':40}
print(max(dict1))
print(min(dict1))
list1=[1,10,0,9]
print(max(list1))
print(list1+list1)
print(list1*3)
总结答疑
1. 在字典中可以包含列表,列表中能包含字典吗?
可以的, 列表 元组可以存放任意类型的数据,同样,字典中的 valu也可以是任意的类型,字典也可以作为字典的 value 值。
# 列表中能包含字典吗?
# 可以的, 列表 元组可以存放任意类型的数据,
# 同样,字典中的 valu也可以是任意的类型,
# 字典也可以作为字典的 value 值。
list1=[{1:"张三",2:"李四"},{"java":20,"python":40}]
dict1={"java":{1:"变量",2:"数据类型"},"javaweb":{1:"tomcat容器",2:"http协议"}}