1、字典
列表和字典都是可变序列。
但是列表是有序存储的,而字典是无序存储的。
字典是通过hash函数决定存储位置的。
2、字典的创建
#使用花括号创建
scores = {"张三":97,"李四":98,"王五":99}
print(scores) #输出:{'张三': 97, '李四': 98, '王五': 99}
#使用函数dict()创建
scores = dict(张三 = 97,李四 = 98,王五 = 99)
print(scores) #输出:{'张三': 97, '李四': 98, '王五': 99}
3、查找字典中元素的值
#使用中括号查找元素
scores = {"张三":97,"李四":98,"王五":99}
print(scores["张三"])
print(scores["陈六"]) #报错
#使用get()查找元素
scores = {"张三":97,"李四":98,"王五":99}
print(scores.get("张三"))
print(scores.get("陈六")) #输出:None
print(scores.get("陈六",100)) #100是在查找陈六不存在时的默认值
4、字典中元素的删除
#删除一个元素
scores = {"张三":97,"李四":98,"王五":99}
del scores["张三"]
#清空整个字典
scores = {"张三":97,"李四":98,"王五":99}
scores.clear()
5、字典中元素的新增和修改
scores = {"张三":97,"李四":98,"王五":99}
scores["陈六"] = 100
scores["陈六"] = 96 #修改为新的值
6、判断元素是否在字典内
scores = {"张三":97,"李四":98,"王五":99}
print("张三" in scores)
print("张三" not in scores)
7、字典视图的获取
scores = {"张三":97,"李四":98,"王五":99}
#获取所有的键
keys = scores.keys()
print(keys) #输出:dict_keys(['张三', '李四', '王五'])
print(list(keys)) #输出:['张三', '李四', '王五']
#获取所有的值
values = scores.values()
print(values) #输出:dict_values([97, 98, 99])
print(list(values)) #输出:[97, 98, 99]
#获取所有的键值对
items = scores.items()
print(items) #输出:dict_items([('张三', 97), ('李四', 98), ('王五', 99)])
print(list(items)) #输出:[('张三', 97), ('李四', 98), ('王五', 99)]
8、字典的遍历
scores = {"张三":97}
for item in scores:
print(item,scores[item],scores.get(item)) #输出:张三 97 97
9、字典的特点
不能在字典的某一位置插入元素,因为字典存储时时无序的。
字典会浪费较大的内存,是一种用空间换时间的数据结构。
10、字典生成式
items = ["Fruits","Books","Others"]
prices = [96,78,85] #如果键和值的数量对不上,则zip生成字典的时候按数量较少的那个确定元素的数量,剩余的舍弃。
dict = {item:price for item,price in zip(items,prices)}
print(dict)