1 2 3 4 5 6 7 8 | 我用的版本是python3 d = { '1' : 84 , '2' : 87 , '3' : 97 , '4' : 73 , '5' : 75 , '6' : 71 , '7' : 67 , '8' : 67 , '9' : 66 , '10' : 80 , '11' : 66 , '12' : 94 , '13' : 74 , '14' : 89 , '15' : 89 , '16' : 87 , '17' : 71 , '18' : 83 , '19' : 76 , '20' : 88 } 统计value大于 70 的表达式为:{key:value for key,value in d.items() if value > 70 },此时d.items()可以正常将key和value传递给 for 循环中的key和value, 但是假如我要对d按value大小进行排序,我的表达式是这样写的; sorted (d.items(), key = lambda key,value:value, reverse = True )它会报错,提示我少传递了一个位置参数value, 但是修改 sorted (d.items(), key = lambda x:x[ 1 ], reverse = True )就可以正常排序。 所以请问老师,为什么同样迭代d.items(),在 for 循环里可以将元组的值赋给key和value,而在 sorted 里的 lambda 里却只能将元组 作为一个整体传递给参数,而不能分别传递给key和value呢? |