我有以下格式的字符串列表:
['b-3','a-2','c-4','d-2']
需要以这样一种方式排序,即列表按数字排序(后面是-)。如果数字相等,字符串需要按字母顺序排序。输出应为
['a-2','d-2','b-3','c-4']
我可以使用comparator/comparable在JAVA中轻松实现。如何通过用python编写函数来实现这一点。你知道吗
list.sort(key= )
import sys
from collections import Counter, OrderedDict
def sortfunc(item):
key,value = item.split('-')
return value
if __name__ == "__main__":
s = input().strip()
c = Counter(s)
lst = []
for key in c:
lst.append(key+'-'+str(c[key]))
lst.sort(key=lambda x :sortfunc(x), reverse=True)
print(lst)
输出为:
['b-3', 'c-2', 'a-2', 'e-1', 'd-1']
现在,我需要帮助来增强sortFunc是这样的方式-如果字符数相等,那么字符串需要按字母顺序排序。你知道吗
这是一种方法。你知道吗
解释
sorted
与key
参数和自定义lambda
函数一起使用。你知道吗int
进行整数比较。你知道吗x.split('-')[::-1]
,因为需要将其中一个值转换为int
。你知道吗相关问题 更多 >
编程相关推荐