根据字母顺序比较字符串

use*_*174 10 python

编写一个函数,它接受两个字符串作为参数,并返回一个更长的字符串.如果字符串具有相同的长度,则返回按字母顺序排列的字符串.

这是我到目前为止:

    def strings(x,y):
        if len(x) > len(y):
            return x
        if len(x)==len(y):
            return 
        else:
            return y
Run Code Online (Sandbox Code Playgroud)

我想知道我将如何编写代码,以便它将选择第一个字母表,第一个字段为第二个if语句.

gef*_*fei 8

这应该工作:

if len(x)==len(y):
   return min(x,y)
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一句,对于混合大小写的字符串时要小心.`min("B","a")`将在"a"之前返回"B". (5认同)
  • `sorted(x,y)[0]`可能会更明确它的意图. (4认同)
  • @kreativitea 好点。为了防止这种情况,你可以使用 `min(x.lower(), y.lower())` 或遵循 @Martijn Pieters' 建议 `sorted([x, y], key=str.lower)[0]` (3认同)

Alw*_*yin 8

您可以直接比较字符串. x<y意思是"x按字母顺序排在前面吗?" 所以你可以用下面的代替你的第二个块:

if len(x) == len(y) and x < y:
    return x
Run Code Online (Sandbox Code Playgroud)


Jul*_*not 5

def f(x,y):
    return len(x) != len(y) and max([x,y],key=len) or min(x,y)
Run Code Online (Sandbox Code Playgroud)