我来自OOP背景并试图学习python.我使用的max函数使用lambda表达式返回列表中Player具有最大值的类型的实例.totalScoreplayers
def winner():
w = max(players, key=lambda p: p.totalScore)
Run Code Online (Sandbox Code Playgroud)
该函数正确返回Player具有最大值的类型的实例totalScore.我对以下三件事感到困惑:
max功能如何运作?它正在采取什么样的论据?我查看了文档,但没有理解.keymax函数中关键字的用途是什么?我知道它也用在sort功能的上下文中这些都是非常无趣的概念性问题,但会帮助我理解语言.如果您可以举例解释,这将有所帮助.谢谢
我正在写一个函数,用于计算数字列表的模式。
如果输入为[52, 99, 37, 86, 99, 99, 99, 37, 37, 37],则输出应为[37, 99]。如您所见,较小的数字应该排在第一位,但是我的代码不会这样做。有人可以修复我的代码吗?
def mode(L):
most = max(list(map(L.count, L)))
return list(set(filter(lambda x: L.count(x) == most, L)))
Run Code Online (Sandbox Code Playgroud) 我正在尝试检索列表中最频繁和不太频繁的元素。
frequency([13,12,11,13,14,13,7,11,13,14,12,14,14])
Run Code Online (Sandbox Code Playgroud)
我的输出是:
([7], [13, 14])
Run Code Online (Sandbox Code Playgroud)
我尝试过:
import collections
s = [13,12,11,13,14,13,7,11,13,14,12,14,14]
count = collections.Counter(s)
mins = [a for a, b in count.items() if b == min(count.values())]
maxes = [a for a, b in count.items() if b == max(count.values())]
final_vals = [mins, maxes]
Run Code Online (Sandbox Code Playgroud)
但我不想使用该collections模块并尝试更面向逻辑的解决方案。
你能帮我在没有集合的情况下做到这一点吗?