tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items())# Python3.xtuple_r_dict(tuple_r_dict(z))整理一下相关知识
1、lambda匿名函数,冒号前为参数,个数可以有0个或多个,冒号右边为返回值lambda [arg1 [, agr2,.....argn]] : expression
lambda [参数1[参数2,...]]:返回值
1 f1=lambda x:x+1
2 print('f1(2):',f1(2))3
4 f2=lambda :'a'
5 print('f2(2):',f2())6
7 #输出
8 #f1(2): 3
9 #f2(): a
tuple_r_dict = lambda _dict: dict(val[::-1] for val in _dict.items())
这句表明创建一个匿名函数
输入:_dict
输出:dict(val[::-1] for val in _dict.items())
2、 dict()
dict()生成一个字典
3、_dict.items()
dict.items()返回字典的(键,值)元组对的列表
1 dic={7:'d',9:'s',5:'a'}2 print('dic:',dic)3 print('dic.items():',dic.items())4
5 #输出
6 #dic: {9: 's', 5: 'a', 7: 'd'}
7 #dic.items(): dict_items([(9, 's'), (5, 'a'), (7, 'd')])
4、val[::-1]
把元组对顺序对调
(1,'A')[::-1] => ('A',1)
L[1,2,3,4,5][:4:2] => [1,3] #取列表中的前4个数,步长为2//第一个冒号左右两边代表在这个列表中的截取范围,第二个冒号右边代表截取范围内每2个取一个数
总结:
生成一个匿名函数,函数返回一个字典dict(val[::-1] for val in _dict.items())
_dict.items()先返回原字典的(键,值)元组对列表
val[::-1] for val in _dict.items() 遍历列表,把列表中的每个元组对中两个值位置对调
dict()把列表转变为字典
至此,生成的新字典的键为旧字典的键值,新键值为旧字典的键。利用字典的键唯一性,去除旧字典的重复键值。
再执行一次tuple_r_dict(tuple_r_dict(z)),把键值对再对调回来