【发布时间】:2018-04-04 17:33:05
【问题描述】:
我有以下格式的字符串列表:
['b-3','a-2','c-4','d-2']
需要以列表按数字排序的方式进行排序(在 - 之后)。如果数字相等,则字符串需要按字母顺序排序。输出应该是
['a-2','d-2','b-3','c-4']
我可以使用比较器/比较器轻松地在 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 是这样的方式 - 如果字符数相等,则字符串需要按字母顺序排序。
【问题讨论】:
-
到目前为止您尝试过什么?您尝试过的技术有哪些具体问题?
-
您实际上可以使用
key=,就像在java中使用comparator一样 -
[b-3,a-2,c-4,d-2]不是字符串,你的意思是['b-3', 'a-2', 'c-4', 'd-2']? -
@setushwetank,请查看新标记的副本。
标签: python