Python 3.x 如何根据最大的数字对包含数字和字母的字符串列表进行排序

Python 3.x 如何根据最大的数字对包含数字和字母的字符串列表进行排序,python-3.x,Python 3.x,我希望对字符串列表进行数字排序,该列表同时包含字符串和数字作为字符串 ['har 1','zee 3'] 预期产出: zee 3 har 1您可以为此使用键值(字典)。然后只需使用中给出的方法根据键/值对列表进行排序。您可以使用排序后的键和参数对列表进行排序 l = ['har 1', 'zee 3'] print(sorted(l, key=lambda x: (-int(x.split()[1]), x.split()[0]))) 输出 ['zee 3', 'har 1'] 您甚至可以使

我希望对字符串列表进行数字排序,该列表同时包含字符串和数字作为字符串

['har 1','zee 3']

预期产出: zee 3
har 1

您可以为此使用键值(字典)。然后只需使用

中给出的方法根据键/值对列表进行排序。您可以使用排序后的键和参数对列表进行排序

l = ['har 1', 'zee 3']
print(sorted(l, key=lambda x: (-int(x.split()[1]), x.split()[0])))
输出

['zee 3', 'har 1']
您甚至可以使用解包操作员根据需要打印它

print(*sorted(l, key=lambda x: (-int(x.split()[1]), x.split()[0])), sep='\n')
这里我从每个值创建一个元组(-int(第二个元素),第一个元素)


因此,它将按数字递减排序,如果相等,它将按字母顺序排序

您可以使用排序函数的
参数指定自定义排序顺序-

l = ['X 3', 'Z 1', 'A 2']
l_sorted = sorted(l, key=lambda x: x.split()[-1])
print(l_sorted)
/*Returns ['Z 1', 'A 2', 'X 3']*/