回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我知道如何用(简单)键=函数自定义排序。但是如果我需要一个更复杂的key=函数,怎么做呢。我很难把它组装起来。在</p>
<p>以下是片段:
在第一个示例中,我使用key=语言环境.strxfrm这就足够了。第二个示例使用另一个key=函数(itemgetter)。但我需要两者都在一起。在</p>
<pre><code>import locale
import operator
locale.setlocale(locale.LC_ALL, "")
# on my computer: German_Germany.1252
lastnames = ["Bange", "Änger", "Amman", "Änger", "Zelch", "Ösbach"]
print(sorted(lastnames, key=locale.strxfrm)) # sorted correct
# alphabetically for Germany
print()
lastnames_firstnames_groups =[
["Bange", "Michael", 2],
["Änger", "Ämma", 2],
["Amman", "Anton", 1],
["Änger", "Chris", 2],
["Zelch", "Sven", 1],
["Ösbach", "Carl", 1]
]
print(sorted(lastnames_firstnames_groups, key=operator.itemgetter(2,0,1)))
# The result is sorted as I expected (the german umlaute are NOT sorted
# the correct way). Is there a way to "add" the string tranformation strxfrm
# as in the first example to this.
</code></pre>
<p>有什么提示吗?在</p>