23

编写一个函数,将两个字符串作为参数并返回较长的那个。如果字符串的长度相等,则返回按字母顺序排在第一位的字符串。

这是我到目前为止所拥有的:

    def strings(x,y):
        if len(x) > len(y):
            return x
        if len(x)==len(y):
            return 
        else:
            return y

我想知道如何编写代码,以便为第二个 if 语句选择按字母顺序排列的字符串。

4

3 回答 3

16

您可以直接比较字符串。 x<y表示“x 是否按字母顺序排在 y 之前?” 因此,您可以将第二个块替换为:

if len(x) == len(y) and x < y:
    return x
于 2012-11-12T21:48:22.340 回答
12

这应该工作:

if len(x)==len(y):
   return min(x,y)
于 2012-11-12T21:40:07.810 回答
5
def f(x,y):
    return len(x) != len(y) and max([x,y],key=len) or min(x,y)
于 2012-11-12T21:45:46.977 回答