我想在一个非空的列表中找到最长的单词。我的函数应该返回最长的单词。如果元素在列表中的长度相等,我将尝试按照Unicode排序来排序最长的元素。例如,我试图返回以下内容:

    >>> highest_word(['a', 'cat', 'sat'])
    'sat'
    >>> highest_word(['saturation', 'of', 'colour'])
    'saturation'
    >>> highest_word(['samIam'])
    'samIam'

到目前为止,我可以让第一个开始工作,这是我的代码:
    def highest_word(wordlist):
    longestWord = ""
    max_len = 0

    for word in wordlist:

        if len(word) > max_len:
            longestWord = len(word)
            longestWord = word
    return longestWord

任何帮助都将不胜感激。

最佳答案

这是一条简单的单行线

print(max(['a', 'cat', 'sat', 'g'], key=lambda s: (len(s), s)))

这是通过将列表中的每个元素映射到包含其长度的元组来实现的
还有绳子本身。
。只有当考虑到第二个元素时。因此,如果两个字符串的长度相等,则将这些字符串作为tiebreaker进行比较。

关于python - 在列表python中找到最长的单词,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36214058/

10-12 20:09