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': '樱桃饺子'}

 

posted @ 2019-05-10 20:07  双伟科技  阅读(241)  评论(0编辑  收藏  举报