sorted 排序
来源:互联网 发布:madis gen软件安装 编辑:程序博客网 时间:2024/05/17 08:35
统计 Python 中的字数
问题
在 Python 中实施函数“count_words()”,该函数将字符串“s”和数字“n”用作输入,并返回“s”中“n”个出现频率最高的单词。返回值应该是一个元组列表 - 出现频率最高的“n”个单词及其相应的出现次数“[(, ), (, ), …]”,按出现次数的降序排列。
您可以假设所有输入都是小写形式,并且不含标点符号或其他字符(只包含字母和单个分隔空格)。如果出现次数相同,则按字母顺序排列出现次数相同的单词。
例如:
print count_words("betty bought a bit of butter but the butter was bitter",3)
Output:
[('butter', 2), ('a', 1), ('betty', 1)]
代码:
"""Count words."""from collections import Counterdef count_words(s, n): """Return the n most frequently occuring words in s.""" # TODO: Count the number of occurences of each word in s res_c = Counter(s.split()) res_l = res_c.items() # TODO: Sort the occurences in descending order (alphabetically in case of ties) res_alphabet = sorted(res_l,key=lambda x:x[0]) res_time = sorted(res_alphabet,key=lambda x:x[1],reverse=True) top_n = res_time[0:n] # TODO: Return the top n words as a list of tuples (<word>, <count>) return top_ndef test_run(): """Test count_words() with some inputs.""" print count_words("cat bat mat cat bat cat", 3) print count_words("betty bought a bit of butter but the butter was bitter", 3)if __name__ == '__main__': test_run()
通过两次排序实现,复杂规则(有正序也有反序的情况)排序.
从 Python 2.2 开始,排序将保证能够 stable。 这意味着当多个记录拥有相同的 key 时,它们的原始顺序将被保留。
IN:data = [('red', 1), ('blue', 1), ('red', 2), ('blue', 2)]IN:sorted(data, key=itemgetter(0))OUT:[('blue', 1), ('blue', 2), ('red', 1), ('red', 2)]
这里有两条记录都包含 ‘blue’ 并且原列表中 (‘blue’, 1) 排在 (‘blue’, 2) 之前,排序后这个顺序依旧被保留。
这个非常有用的特性可以用来实现包含多重排序(一会升序,一会降序)的复杂排序。比如,目标是实现 student 数据先以 grade 降序排序再以 age 升序排序:
>>> class Student: def __init__(self, name, grade, age): self.name = name self.grade = grade self.age = age def __repr__(self): return repr((self.name, self.grade, self.age))>>> student_objects = [ Student('john', 'A', 15), Student('jane', 'B', 12), Student('dave', 'B', 10),]>>> s = sorted(student_objects, key=attrgetter('age')) # sort on secondary key>>> s[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]>>> sorted(s, key=attrgetter('grade'), reverse=True) # now sort on primary key, descending[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
0 0
- 排序sorted
- sorted 排序
- sorted排序
- sorted()排序详解
- python dict sorted 排序
- python dict sorted 排序
- python dict sorted 排序
- python 排序sorted()
- Python - sorted 排序
- sorted()排序详解
- python sorted() 排序
- Python sorted() 高级排序
- python - sorted()排序
- python排序:sorted()
- Python 排序函数sorted
- python排序之sorted
- Python 排序(sorted)
- sort、sorted 排序技巧
- 优秀网址收藏
- 秒杀各种Pay?Samsung Pay支付宝功能率先体验
- Tengine安装./configure: error: C compiler cc is not found
- Git 使用规范流程
- Apaache CXF 2.7 与Spring 3.0.7 集成
- sorted 排序
- tarjan算法介绍与分析
- 下一代宽带策略控制系统走向何方?
- VR南京体验馆
- JAVA MemCache 史无前例的详细讲解!看完包精通MEMCACHE!
- Python import语句导入模块语法
- easyrec推荐系统学习过程中容易混淆的几个概念
- 关于android studio报错transformClassesAndResourcesWithProguardForRelease
- xml:schema详解