我用的版本是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呢?