对此列表进行排序的python实现是什么:
['a', 'C', 2, 'z', 'B', 1, 'h', 0, 'Y', 9]
进入下面的列表?
['a', 'B', 'C', 'h', 'Y', 'z', 9, 2, 1, 0]
订单:a-> b-> ..-> y-> z-> ... 3-> -2->> 1-> 0
字母不区分大小写(' A'与' a'相同)。
谢谢!
答案 0 :(得分:3)
使用排序指定正确的键函数应该使用给定列表执行此操作:
lst = ['a', 'C', 2, 'z', 'B', 1, 'h', 0, 'Y', 9]
sorted(lst, key = lambda x: (not isinstance(x, str), x.lower() if isinstance(x, str) else -x))
# ['a', 'B', 'C', 'h', 'Y', 'z', 9, 2, 1, 0]