代码之家  ›  专栏  ›  技术社区  ›  pilu

使用max with键的列表列表中的最大长度列表

  •  0
  • pilu  · 技术社区  · 6 年前

    key 内在论 max 功能。请考虑以下示例:

    我有一个列表,我想找一个最大长度的。

    maximum = 0
    for l in lists:
       maximum = max(maximum, len(l))
    

    但是,我更希望避免使用 钥匙 最大值 . 据我所知,键将把它的参数应用于输入中的每个元素,然后比较这些输出。所以这应该有效:

    maximum = max(lists, key=len)
    

    我认为它应该是有效的,因为根据我的理解(显然是错误的),上面的语句将等同于对每个元素应用长度,然后调用 :

    max([len(l) for l in text_tokenized])
    

    我错过了什么?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Grijesh Chauhan Anand Krishnan    6 年前

    max

    不,是密码

    maximum = max(lists, key=len)
    

    意思是,从 lists len(element)

    然而,你想要的是 len(元素) . 一行代码:

    maximum = 0
    for l in lists:
       maximum = max(maximum, len(l))
    

    会是

    max(map(len, lists))
    

    len(max(lists, key=len))