【问题标题】:How do I find the longest string in Python?如何在 Python 中找到最长的字符串?
【发布时间】:2012-09-14 08:26:36
【问题描述】:

max(len(s1), len(s2)) 这样的东西只会返回最大长度。但是如果我真的想找出哪个字符串更长,或者将它保存到另一个字符串,那是怎么做的呢? max(s1,s2) 似乎返回值较大的字符串,但不一定是最长的。

注意:这必须在没有列表或数组的情况下完成。

【问题讨论】:

    标签: python string string-length


    【解决方案1】:

    max 采用 key 函数,该函数导致 max 为每个 key(val) 取最大值 val,但仍返回 val,即:

    >>> max("foobar", "angstalot")
    'foobar'
    >>> max("foobar", "angstalot", key=len)
    'angstalot'
    

    【讨论】:

      【解决方案2】:

      只需要一个基于每个字符串长度的简单条件表达式:

      longest = s1 if len(s1) > len(s2) else s2
      

      【讨论】:

        【解决方案3】:
        def longest(a, b):
           if len(a) > len(b):
               return a
           return b
        

        【讨论】:

        • 它可以工作,但它不是惯用的,因为正是该功能,以更通用和有用的形式,已经存在于内置函数中。
        • 也许你应该编辑这个问题说“什么是做到这一点的真正方法?”。
        • 这既不是我的反对意见,也不是我的问题。但除此之外,否决票并不意味着“答案没有解决问题的本质”,而是“答案没有用”。可以说不是,因为它教会谦逊的读者重新实现基本功能,而不是使用内置函数。
        • 很公平。我同意使用内置更“pythonic”,但不同意非单行在单行可用的情况下没有用。
        • 这不是关于一个衬里(通常会导致代码可读性降低),而是关于使用四行代码重新实现可以在 代码。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-25
        • 1970-01-01
        • 2020-08-07
        • 1970-01-01
        • 2017-05-30
        • 1970-01-01
        • 2014-03-21
        相关资源
        最近更新 更多