Python字典转数组代码中lambda x:(-x[1],x[0])含义解析
解析sorted函数中
lambda x:(-x[1],x[0])的含义 先明确代码的整体逻辑:D.items()会把字典D转换成由(键, 值)元组组成的列表,而sorted()函数通过key参数指定排序规则,最终生成排序后的数组res。
这个lambda表达式是给sorted()提供排序依据的核心逻辑,拆解来看:
x代表D.items()中的每一个(键, 值)元组-x[1]:x[1]是元组里的值(value),加负号是为了让sorted()按照值的降序排列(因为Python的sorted()默认是升序排序,给值加负号后,数值大的值会变成更小的负数,排序时会被排到前面)x[0]:当两个元组的值(value)相等时,就会按照x[0]也就是键(key)的升序排列(默认升序,比如字符串按字母顺序、数字按大小)
举个实际例子:
如果字典D = {'apple': 5, 'banana': 3, 'cherry': 5},D.items()得到[('apple',5), ('banana',3), ('cherry',5)],用这个lambda作为key排序后,结果会是[('apple',5), ('cherry',5), ('banana',3)]——apple和cherry的值都是5,所以按键的字母顺序排列,banana的值最小排在最后。
内容的提问来源于stack exchange,提问作者Kaira Wadhwa
相关产品推荐
相关产品推荐

