我有一组元组(“twoples”)的列表
[('aaa',2), ('BBB',7), ('ccc',0)]
我需要按照那个顺序打印它,但是
>>> sorted([('aaa',2), ('BBB',7), ('ccc',0)])
提供
[('BBB', 7), ('aaa', 2), ('ccc', 0)]
list.sort(key=str.tolower)
这不起作用(显然),因为
AttributeError: type object 'str' has no attribute 'tolower'
我不想改变列表中的字符串。
另一个答案给出了:
list.sort(key=lambda (a, b): (a.lower(), b))
不过那一定是Python 2的事情了,因为
SyntaxError: invalid syntax
首先(
itemgetter() 没有帮助,因为只允许一个“key”
def
定义的函数,就像使用lambda
内联定义的函数一样,可以很容易地应用于列表的每一行。因此,如果您无法使用lambda
编写某些内容,您始终可以使用def
(它允许您包括赋值和其他语句)。 - abarnert