python 字典
字典:
由键值组成的无序数据的组合。
字典的键必须是不可以改变的类型。 常用的就是字符串,整型,浮点型,用于区分字典中值的标识和索引一个作用
1.dict 字典
1 # dict 字典 标识符{} 是一组键值对映射的关系无序的数据 2 3 dict1 = {"a":1,"b":2,"c":3} 4 print(dict1,type(dict1)) 5 #输出结果:{'a': 1, 'b': 2, 'c': 3} <class 'dict'> 6 var = dict1["b"] #"b"是键 2 是值,通过获取键得到值 7 print(var) 8 #输出结果:2
2.修改字典的值
1 #修改字典的值 2 dict1 = {"a":1,"b":2,"c":3} 3 # 当我们对值进行修改的时候 如果有这个键 那么就修改键对应的值 4 dict1["b"] = 3 5 print(dict1) 6 #输出结果:{'a': 1, 'b': 3, 'c': 3}
3.添加字典的键值
1 # 当我们对值进行修改的时候 ,如果没有这个键那么就添加这个键值对 2 dict1 = {"a":1,"b":2,"c":3} 3 dict1["d"] = 5 4 print(dict1) 5 #输出结果:{'a': 1, 'b': 2, 'c': 3, 'd': 5}
4.字典嵌套字典
1 #字典嵌套字典 2 dict1 = {1:"a","2":{"a":1}} 3 var = dict1["2"]["a"] 4 print(var) 5 #输出结果:1
5.字典嵌列表
1 #字典嵌列表 2 dict3 = {"a":1,"b":2,"c":[1,2,3]} 3 list1 = dict3["c"] 4 print(list1) 5 #输出结果:[1, 2, 3]
6.clear()清空字典
1 #clear()清空字典 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 print(dict1) 4 #输出结果:{'a': 1, 'b': 2, 'c': 3, 'd': 4} 5 #clear清空字典 6 dict1.clear() 7 print(dict1) 8 #输出结果:{}
7.copy() 拷贝字典
1 # copy() 拷贝字典 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 dict2 = dict1.copy() 4 print(dict2) 5 #输出结果:{'a': 1, 'b': 2, 'c': 3, 'd': 4}
8.列表合并成字典
1 #列表合并成字典 2 dict2 ={} 3 list1 = ["a","b","c"] 4 list2 = [1,2,3] 5 dict3 = dict2.fromkeys(list1,list2) 6 print(dict3) 7 #输出结果:{'a': [1, 2, 3], 'b': [1, 2, 3], 'c': [1, 2, 3]}
9.字典的 get() 方法
1 # get() **** 获取字典中键所对应的值 没有的时候返回None 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 #res = dict1["f"] 4 #print(res) 5 #输出结果:报错 6 res1 = dict1.get("f") 7 print(res1) 8 #输出结果:None
10.字典的项,键,值
1 #字典的项,键,值 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 res1 = dict1.items() #获取字典的项 4 print(res1,type(res1)) 5 #输出结果:dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)]) <class 'dict_items'> 6 res2 = dict1.keys()#获取字典的键 7 print(res2,type(res2)) 8 #输出结果:dict_keys(['a', 'b', 'c', 'd']) <class 'dict_keys'> 9 res3 = dict1.values()#获取字典的值 10 print(res3,type(res3)) 11 #输出结果:dict_values([1, 2, 3, 4]) <class 'dict_values'>
11.pop(),删除字典的键
1 #pop(),删除字典的键 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 res = dict1.pop("d") 4 print(res) 5 #输出结果:4 6 print(dict1) 7 #输出结果:{'a': 1, 'b': 2, 'c': 3}
12.popitem()删除字典的最后一项
1 #popitem()删除字典的最后一项 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 res = dict1.popitem() 4 print(res) 5 #输出结果:('d', 4) 6 res = dict1.popitem() 7 print(res) 8 #输出结果:('c', 3) 9 print(dict1) 10 #输出结果:{'a': 1, 'b': 2}
13.setdefault()从最后一项添加字典的键和值
1 #setdefault()从最后一项添加字典的键和值 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 dict1.setdefault("f",6) 4 print(dict1) 5 #输出结果:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'f': 6}
14.update() *** 更新字典内容
1 # update() *** 更新字典内容 2 dict1 = {"a":1,"b":2,"c":3,"d":4} 3 dict1.update(f=6)#如果没此键就添加 4 print(dict1) 5 #输出结果:{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'f': 6} 6 dict2 = {"c":2,"d":4,"f":5}#如果有此键就修改 7 dict1.update(dict2) 8 print(dict1) 9 #输出结果:{'a': 1, 'b': 2, 'c': 2, 'd': 4, 'f': 5}
15.字典推导式
1 #推导式 2 fruit = {'apple':'苹果','pear':'梨','orange':'橘子','banana':'香蕉','cherry':'樱桃'} 3 4 #1基本推导式 5 result = {k:v for k,v in fruit.items()} 6 print(result) 7 #输出结果:{'apple': '苹果', 'pear': '梨', 'orange': '橘子', 'banana': '香蕉', 'cherry': '樱桃'}
16.带条件的推导式(排除香蕉)
1 #2.带条件的推导式(排除香蕉) 2 fruit = {'apple':'苹果','pear':'梨','orange':'橘子','banana':'香蕉','cherry':'樱桃'} 3 result = {k:v for k,v in fruit.items() if k != 'pear'} 4 print(result) 5 #输出结果:{'apple': '苹果', 'orange': '橘子', 'banana': '香蕉', 'cherry': '樱桃'}
17.多循环推导式
1 #多循环推导式 2 fruit = {'apple':'苹果','pear':'梨','orange':'橘子','banana':'香蕉','cherry':'樱桃'} 3 zhushi = {'mantou':'馒头','baozi':'包子','jiaozi':'饺子'} 4 result ={fk+zk :fv+zv for fk,fv in fruit.items() for zk,zv in zhushi.items()} 5 print(result) 6 #输出结果:{'applemantou': '苹果馒头', 'applebaozi': '苹果包子', 'applejiaozi': '苹果饺子', 'pearmantou': '梨馒头', 'pearbaozi': '梨包子', 'pearjiaozi': '梨饺子', 'orangemantou': '橘子馒头', 'orangebaozi': '橘子包子', 'orangejiaozi': '橘子饺子', 'bananamantou': '香蕉馒头', 'bananabaozi': '香蕉包子', 'bananajiaozi': '香蕉饺子', 'cherrymantou': '樱桃馒头', 'cherrybaozi': '樱桃包子', 'cherryjiaozi': '樱桃饺子'}
18.带判断条件的多循环推导式
1 #带判断条件的多循环推导式 2 fruit = {'apple':'苹果','pear':'梨','orange':'橘子','banana':'香蕉','cherry':'樱桃'} 3 zhushi = {'mantou':'馒头','baozi':'包子','jiaozi':'饺子'} 4 result ={fk+zk :fv+zv for fk,fv in fruit.items() for zk,zv in zhushi.items() if zk != 'mantou' } 5 print(result) 6 #输出结果:{'applebaozi': '苹果包子', 'applejiaozi': '苹果饺子', 'pearbaozi': '梨包子', 'pearjiaozi': '梨饺子', 'orangebaozi': '橘子包子', 'orangejiaozi': '橘子饺子', 'bananabaozi': '香蕉包子', 'bananajiaozi': '香蕉饺子', 'cherrybaozi': '樱桃包子', 'cherryjiaozi': '樱桃饺子'}