繁体   English   中英

根据频率和字母顺序排序

[英]Sorting based on frequency and alphabetical order

我正在尝试根据频率进行排序并按字母顺序显示它 在频率计数之后,我有一个包含(string, count)元组的列表 Eg tmp = [("xyz", 1), ("foo", 2 ), ("bar", 2)]

然后我排序为sorted(tmp, reverse=True)这给了我[("foo", 2 ), ("bar", 2), ("xyz", 1)]

当频率相同时,我怎样才能让它们按字母顺序按最低顺序排序,试图找出比较器 function

预期 output: [("bar", 2), ("foo", 2 ), ("xyz", 1)]

您必须按多个键排序。

sorted(tmp, key=lambda x: (-x[1], x[0]))

资料来源: 按多个属性对列表进行排序? .

使用此代码:

from operator import itemgetter

tmp = [('xyz',1), ('foo', 2 ) , ('bar', 2)]
print(sorted(tmp, key=itemgetter(0,1)))

这将跳过 function 调用的用法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM