#字典:存放具有映射关系的数据 键值对(key,value) 1.key不允许重复 唯一且不可变 2.字典不支持索引和切片,但可以通过键查询值 3.字典无序 通过键来存取 4.字典可变且任意嵌套
#字典的创建与删除
grade = {"语文:":67,"数学":90}
print(grade)
dict1 = {(1,2):"male",(1,3):"female"} #键是元组
print(dict1[(1,2)]) #访问
books = [('hadoop',123),('hadoop1',132),('hadoop2',133)] #列表 元组 dict转化
dict2 = dict(books)
print(dict2)
dict3 = dict(name="杨晨烽",grade1="466") #通过指定参数创建字典
print("{}考研成绩为:{}分" .format(dict3["name"],dict3["grade1"])) #key要加“”
keys = ["政治","英语","农信341","C语言"]
values = [80,80,145,140]
dict4 = dict(zip(keys,values)) #zip()打包成一个元组
print(sum(values))
print(dict4)
#del 可以删除字典 字典对象也有clear方法清空所有元素,变成空字典
print(dict4.clear())
#访问字典
print(grade.get("数学")) #推荐使用字典的get()方法
print(grade.get("英语","不存在该课程")) #default找不到返回
#利用items()方法获取键值对列表
grade = {"政治":67,"英语":90,"专业课1:":148,"专业课2":148}
items = grade.items()
keys = grade.keys()
values = grade.values()
print(items,keys,values)
#可以通过list()函数把他们转换成列表
print(list(items))
#可以通过for循环遍历
for i in items:
print(i)
for key,value in items:
print(key,value)
#字典提供了pop()方法,删除指定键值对
print(grade.pop("政治"))
#添加、修改和删除字典元素
grade["政治"] = 80 #添加
grade["政治"] = 85 #修改
del grade["英语"] #删除
grade.update({"政治":85,"英语":85,"专业课1:":148,"专业课2":142}) #update原有的覆盖,没有的添加
print(grade)
#字典推导式
word_list = ["politics","english","agricultural comprehensive","C"] #计算长度
word_dict = {key:len(key) for key in word_list} #是列表的len方法
print(word_dict)
#根据列表生成字典
name = ["杨","陈","风"]
title = ["professor","boss","coder"]
dict5 = {i:j for i,j in zip(name,title)}
print(dict5)
#实例:交换现有字典中的各键值对的键值
dict6 = {j:i for i,j in dict5.items() if i=="杨"} #Python不允许直接访问字典,必须要items()
print(dict6)