输入代码:
best = sorted(word_scores.items(), key=lambda w, s: s, reverse=True)[:10000]
结果:
Traceback (most recent call last):
File "C:\Users\Sarah\Desktop\python\test.py", line 78, in <module>
best = sorted(word_scores.items(), key=lambda w, s: s, reverse=True)[:10000]
TypeError: <lambda>() missing 1 required positional argument: 's'
我该如何解决?
答案 0 :(得分:0)
如果我正确理解了你的word_scores
词典的格式(键是单词,值是表示分数的整数),你只是想得到一个有序的单词列表得分,就这么简单:
best = sorted(word_scores, key=word_scores.get, reverse=True)[:10000]
如果你想使用lambda来获得一个有序的元组列表,其中每个元组是一个单词和一个分数,并且它们按分数排序,你可以执行以下操作:
best = sorted(word_scores.items(), key=lambda x: x[1], reverse=True)[:10000]
这与你原来的尝试之间的区别在于我已经将一个参数(x)传递给了lambda,而x是一个长度为2的元组 - x [0]是单词而x [1]是得分。由于我们想要按分数排序,我们使用x [1]。