Python函数式编程解决单词中字符频统计问题

原创 2017年08月29日 00:39:03

就是输入一个单词比如“science”,最后返还的结果是[ 'c','e'], 2/7。大意就是在这个单词中一共有两个字母重复的频率最高,分别是c和e,这个highest relative frequency是2/7


其实达到基本要求只要一行就可以实现:

>>> func=lambda w: '{0},{1[0]}/{2}'.format(*zip(*filter(lambda x:x[1]>1, __import__('collections').Counter(word).most_common())),len(w))
>>> func('science')
"('c', 'e'),2/7"
>>> func('protocol')
"('o',),3/8"
>>> 

更为完善一些的写法是下面这样的:


#coding=utf-8

from collections import Counter

def freq(word):
    counter = Counter(word).most_common()
    freq_chars = counter[0:1] + list(filter(lambda x: x[1]>1, counter[1:]))   
    return '{0} => {1},{2[0]}/{3}'.format(word,*zip(*freq_chars),len(word))

test_cases = 'science protocol word c collections 0 '.split()
print('\n'.join(map(freq, test_cases)))


结果:

Python 3.6.2 (v3.6.2:5fd33b5, Jul  8 2017, 04:57:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 
science => ('c', 'e'),2/7
protocol => ('o',),3/8
word => ('w',),1/4
c => ('c',),1/1
collections => ('c', 'o', 'l'),2/11
0 => ('0',),1/1
>>> 



函数式编程实践记(1)——统计单词频率

题目 给定一段英文,找出每个单词使用的频率, 按照String字典顺序排序,并打印出所有单词及其频率的排序列表。如: “My name is …, I come from …, I am … ye...

javascript函数式编程---解决事件参数传递问题

说明:函数式编程的概念,是本人的理解之物,不属于正规的严密定义。  备用知识点:  引用 函数式编程------由于函数最终是一个值,因此函数可像普通变量一样参于各种运算,这...
  • atgwwx
  • atgwwx
  • 2012年03月31日 18:20
  • 391

函数式编程在Python中的用法

  • 2017年04月13日 16:17
  • 639KB
  • 下载

Python函数式编程

  • 2013年09月27日 13:19
  • 392KB
  • 下载

Python 进阶_函数式编程

目录 [toc] 函数式编程 首先要确定一点就是:函数 != 函数式 函数式编程是一种编程的范式。 特点: 把计算视为函数而非指令 纯函数式编程,不需要变量,没有副作用,测试简单 支...
  • Jmilk
  • Jmilk
  • 2016年10月16日 01:09
  • 930

python函数式编程中的装饰器

学习了装饰器,是一种在运行函数期间动态增加功能的方式,并且不改变函数本身的代码。虽然具体的作用目前还没体现出来,暂且如此记忆 装饰器一般用@符号来表示使用,放在定义函数的上一行,表示装饰。而且好像要...

Python 函数式编程之 filter()、map()和reduce()

上篇文章中说到lambda 的用法,再来看下其它几个类似功能的函数:filter()、map()、reduce()...

python进阶-函数式编程

Python 高阶函数 定义 高阶函数:能接受函数作为参数的函数 #计算25的开方和9的开方和 import math def add(x, y, f): return f...

廖雪峰Python教程学习笔记4-函数式编程

函数式编程就是一种抽象程度很高的编程范式,其一个特点是允许把函数本身作为参数传入另一个函数,还允许返回一个函数...

【Python学习笔记】函数式编程

【根据廖雪峰python教程整理】   函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python函数式编程解决单词中字符频统计问题
举报原因:
原因补充:

(最多只允许输入30个字)