说我有我要排序的列表 - 从最高到最低的数字 - 包含姓名和数字,例如:
A = ["LA" , 10 , 3 , 4] #lists ending with a comma after the closing bracket are interpreted as tuples containing a list
B = ["NY" , 4 , 2 , 2] #need quotes around the AK, etc
C = ["AK" , 1 , 4 , 6] ,
D = ["WA" , 7 , 9 , 2] ,
如何对这些列表进行排序以使数字按降序排列(从最高到最低)?
答案 0 :(得分:0)
按降序排列; (文本将首先出现)
>>> import numbers
>>> import sys
>>> A = ["LA", 10, 3, 4]
>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.max, reverse=True)
['LA', 10, 4, 3]
升序; (文本将首先出现)
>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.min, reverse=False)
['LA', 3, 4, 10]
按降序排列; (文本将在最后)
>>> print sorted(A, key=lambda n: n if isinstance(n, numbers.Number) else sys.float_info.min, reverse=True)
[10, 4, 3, 'LA']
答案 1 :(得分:-1)
尝试:
a=['gg', 10, 1, 100, 55]
def myKey(x):
if isinstance(x,str):
return -99999999
else:
return x #or -1 * key if you want the numbers in reverse order
a.sort(key=myKey)
reversed(a) #will give you a in reversed order -- string at the end
key参数指定一个用于“转换”的函数。将每个元素放入要排序的键中。反向迭代器只是以相反的顺序给出元素....