最近在扒vnpy的源码总能看到{v: k for k, v in ORDERTYPE_VT2HUOBI.items()}这样的源码,就是不知道什么意思
然后万能的google找到了Quora的一个类似回答,我就按照自己的理解搬过来了
如有不对的地方,评论区见(✿◕‿◕✿)
概述
本质上就是新建一个字典,与原字典相比key和value互换
例如:原字典{'key1':'value1','key2':'value2'} 新字典变为{'value1':'key1','value2':'key2'}
详解
1. 字典由key和value两部分组成,items()方法返回可遍历的(键, 值) 元组数组。
myArray = {'a':'1','b':2} myArray.items() ''' 输出结果如下 dict_items([('a':'1'),('b','2')]) '''
2. for循环中k和v都是变量,分别遍历了key,value
for k,v in myArray.items() print(k,v) ''' 输出结果如下 a 1 b 2 '''
3.代码中v:k代表了v是key,k是value,而k,v则是表示key,value换个位置
{v:k for k,v in myArray.items()} ''' 输出结果如下 {'1':'a','2':'b'} '''
参考资料:Quora回答