如何根据最高数字对同时包含数字和字母的字符串列表进行排序

时间:2019-01-02 14:46:54

标签: python-3.x

我正在寻找一种数字排序的字符串列表,该列表同时具有字符串和数字。

['har 1','zee 3']

预期输出: Zee 3 har 1

3 个答案:

答案 0 :(得分:0)

您可以为此使用键值(字典)。然后,只需使用https://www.saltycrane.com/blog/2007/09/how-to-sort-python-dictionary-by-keys/

中给出的方法根据键/值对列表进行排序

答案 1 :(得分:0)

您可以使用已排序和参数key

对列表进行排序
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(second_element),first_element)元组

因此它将按数字递减排序,并且在相等的情况下,将按字母顺序排序

答案 2 :(得分:0)

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

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']*/