如何在不区分大小写的情况下高效轻松地对元组列表进行排序?
例如这个:
[('a', 'c'), ('A', 'b'), ('a', 'a'), ('a', 5)]
排序后应该是这样的:
[('a', 5), ('a', 'a'), ('A', 'b'), ('a', 'c')]
常规的词典排序会将 'A' 放在 'a' 之前并产生:
[('A', 'b'), ('a', 5), ('a', 'a'), ('a', 'c')]
最佳答案
您可以使用sort
的key
参数来定义您希望如何看待每个元素的排序:
def lower_if_possible(x):
try:
return x.lower()
except AttributeError:
return x
L=[('a', 'c'), ('A', 'b'), ('a', 'a'), ('a', 5)]
L.sort(key=lambda x: map(lower_if_possible,x))
print(L)
参见 http://wiki.python.org/moin/HowTo/Sorting有关如何使用 key
的说明。
关于python - 对不区分大小写的元组列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2494740/