如何让 python 按字母顺序打印出列表中的元素?

How can I let python print out the elements in a list in alphabetical order?

所以我将这段代码 return 按字长顺序写入列表中的每个字符串。

def sort_by_length(words: list[str]):
    return sorted(words, key=len)
print(sort_by_length(['this','is','a','test','for','sorting','by','length']))

我得到了输出,即

['a', 'is', 'by', 'for', 'this', 'test', 'length', 'sorting']

但是,我想稍微更改我的代码,这样如果两个或多个字符串的长度相同,代码将 return 这两个字符串,但按字母顺序排列。

就像我得到的输出一样,我希望它是这样的:

['a', 'by', 'is', 'for', 'this', 'test', 'length', 'sorting']

我应该改变什么?

使用 returns 元组的键函数。

def sort_by_length(words: list[str]):
    return sorted(words, key=lambda x: (len(x), x))