请帮我理解这段Python3代码:
def length_and_alphabetical(string):
"""Return sort key: length first, then case-normalized string."""
return (len(string), string.casefold())
colors = ["Goldenrod", "Purple", "Salmon", "Turquoise", "Cyan"]
colors_by_length = sorted(colors, key=length_and_alphabetical)
我明白它在做什么,但我不明白它是如何工作的。
length_and_alphabetical
函数返回一个元组,其中包含两个项目,一个int
和一个string
,该元组用于由sorted
函数进行比较。
例如,该函数可能返回
(9, "Goldenrod")
,但是其中哪一个被用作键?这里有两个选项,您无法对它们进行直接比较,因为它们是不同的对象类型。
我一直在查看官方文档,但我一无所知。
谢谢。
sort 将按升序使用元组的第一个元素,但该函数将返回元组的元组,如您所提到的。