我正在寻找一种数字排序的字符串列表,该列表同时具有字符串和数字。
['har 1','zee 3']
预期输出: Zee 3 har 1
答案 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']*/