一. 字典
字典:无序,需要存key与value映射的相关信息,可变,需要处理数据的增删改
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)
分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
字典存储数据是无序的存储
# 一个简单的字典实例: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
# 创建字典:
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
1.元素的访问
# 元素的访问 dict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} print(dict["Name"]) #Runoob 没有就会报错 print(dict.get("Name")) #Runoob 如果字典有就获取到这个元素 没有也不会报错
2.添加
# 添加 dict1= {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict1["age"]=22 print(dict1) #{'age': 22, 'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
3. 修改
# 修改 dict2= {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} dict2["Class"]=10000 print(dict2) # {'Class': 10000, 'Name': 'Runoob', 'Age': 7}
3.删除字典元素 clear del
# 删除字典元素 # 能删单一的元素也能清空字典,清空只需一项操作。 # 显示删除一个字典用del命令,如下实例: dict3 = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} del dict['Name'] # 删除键 'Name' dict.clear() # 清空字典 del dict # 删除字典
4.字典遍历
# 字典遍历 dict6= {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} for key in dict6: print(key) # Class # Age # Name
ict4= {'Name': 'Runoob', 'Age': 7, 'Class': 'First'} for key in dict4: print(key,dict4[key]) # Age 7 # Class First # Name Runoob
dict7= {'Name': 'Runoob', 'Age': 22, 'Class': 'First'} for value in dict7.values(): print(value) # 22 # Runoob # First
dict8= {'Name': 'Runooeeeeeb', 'Age': 22, 'Class': '哈哈哈哈哈'} for k,v in dict8.items(): print(k,v) # Name Runooeeeeeb # Age 22 # Class 哈哈哈哈哈
5.enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列
# enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列, # 同时列出数据和数据下标,一般用在 for 循环当中。 # enumerate(sequence, [start=0]) # 参数 # sequence -- 一个序列、迭代器或其他支持迭代对象。 # start -- 下标起始位置。 dict10= {'Name': 'RAAAAAA', 'Age': 220000, 'Class': '哈哈哈哈AAAA哈'} for k,v in enumerate(dict10): print(k,v) # 0 Age # 1 Class # 2 Name
字典和list列表比较
字典 :查找和插入的速度极快 不会随着key value 增加而加慢
需要占用大量的内存
list
查找和插入的速度随着数据的增多而 速度会减慢
占用空间小 浪费的内存少