如何获得所有maxs max函数

gab*_*r12 6 python max

max('str','frt',key=len)
Run Code Online (Sandbox Code Playgroud)

max函数只返回一个字符串.
我怎样才能让它返回两个字符串?
两个字符串的长度是相等的,因此max应该返回两个字符串,但只返回一个,所以有一种方法可以返回所有最大项目.

Hug*_*ell 6

您可以将其写为列表理解:

data = ['str', 'frt']
maxlen = max(map(len, data))
result = [s for s in data if len(s) == maxlen]
Run Code Online (Sandbox Code Playgroud)

  • 另外,在第二行使用更多的pythonic(并且*稍微*更快)以使用max(a,key = len)而不是max.map。 (3认同)
  • @AndyHayden 在这种情况下,“maxlen”将是实际的字符串,而不是 3,因此您必须再次调用“len”来获取长度。似乎在这里这样做更合适。 (2认同)