柱状图python_python柱状图一行

编写计算柱状图的python程序有很多种方法。

通过柱状图,我指的是一个计算对象在

iterable

并在字典中输出计数。例如:

>>> L = 'abracadabra'

>>> histogram(L)

{'a': 5, 'b': 2, 'c': 1, 'd': 1, 'r': 2}

编写此函数的一种方法是:

def histogram(L):

d = {}

for x in L:

if x in d:

d[x] += 1

else:

d[x] = 1

return d

写这个函数有更简洁的方法吗?

如果我们有关于python的字典理解,我们可以写:

>>> { x: L.count(x) for x in set(L) }

但是由于python 2.6没有它们,我们必须写:

>>> dict([(x, L.count(x)) for x in set(L)])

虽然这种方法可能是可读的,但它是不有效的:l被遍历多次。此外,对于单寿命生成器,这不起作用;对于迭代器生成器,该函数应该同样有效,例如:

def gen(L):

for x in L:

yield x

我们可以尝试使用

reduce

功能(R.I.P.):

>>> reduce(lambda d,x: dict(d, x=d.get(x,0)+1), L, {}) # wrong!

哎呀,这不管用:密钥名是

'x'

不是

x

. :(

我的结局是:

>>> reduce(lambda d,x: dict(d.items() + [(x, d.get(x, 0)+1)]), L, {})

(在python 3中,我们必须

list(d.items())

而不是

d.items()

但这是假设,因为没有

减少

在那里)

请用更好、更易读的一行字打败我!;)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HashMap 和 HashTable 到底哪不同 ?

转载自 HashMap 和 HashTable 到底哪不同 ?代码版本 JDK每一版本都在改进。本文讨论的HashMap和HashTable基于JDK 1.7.0_67。源码见这里 1. 时间 HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2。从时间的维度上来看,HashMap要比HashTable出…

架构师成长之路(内附推荐书籍)

转: https://www.jianshu.com/p/f661f098b88a 想要成为架构师,对技术的深度和广度都有很高的要求,本文列举出成为一个架构师必备的技能和学习路线。 对于学习途径有疑惑或苦恼,或者有优秀资料可以提供的同学,可加留言&…

python 虚拟环境_理解Python虚拟环境

什么是环境既然有所谓的 虚拟环境(Virtual Environment),那么首先有必要解释一下,什么是环境。这里的环境,指的就是 Python 代码的运行环境。它应该包含以下信息:Python 解释器,用哪个解释器来执…

java.util.concurrent.locks.Lock文档说明

【1】Lock接口文档描述 1.相比于使用synchronized方法和代码块,锁的出现提供了更广泛的锁操作。 锁允许更灵活的代码结构,具有许多不同的属性,还支持多个关联的Condition条件对象。 2.锁是用于控制多个线程访问共享资源的工具。通常&#…

20 个使用 Java CompletableFuture的例子

转载自 20 个使用 Java CompletableFuture的例子这篇文章介绍 Java 8 的 CompletionStage API和它的标准库的实现 CompletableFuture。API通过例子的方式演示了它的行为,每个例子演示一到两个行为。既然CompletableFuture类实现了CompletionStage接口,首…

fastreport 打印两个list_Smaller And Smarter Python数据结构:合并两个有序链表

原创: 老表 简说Python 今日问题 :翻转链表k个相邻结点"""目标:写一段程序,合并两个有序链表例如:输入-> 1->2->3输入-> 2->5->6->8输出-> 1->2->2->3->5->6-&…

java.util.concurrent.locks.Condition文档说明

【1】Condition接口文档描述 1.Condition类把Object监视器方法(wait,nofify, notifyAll)分解为不同对象,通过与Lock实现类的合并使用,Condition可以产生每个object都有多个等待集的效果。在Lock实现类替代synchronized方法或语句…

谈谈HashMap线程不安全的体现

转载自 谈谈HashMap线程不安全的体现HashMap的原理以及如何实现,之前在JDK7与JDK8中HashMap的实现中已经说明了。那么,为什么说HashMap是线程不安全的呢?它在多线程环境下,会发生什么情况呢?1. resize死循环我们都知道…

手机打开python文件_使用python在计算机和手机之间通过wifi进行简单的文件传输...

我会使用 paramiko.它安全快速而且非常简单.怎么回事? 所以我们首先导入模块,然后指定日志文件: import paramiko paramiko.util.log_to_file(/tmp/paramiko.log) 我们打开一个SSH传输: host "example.com" port 22 transport p…

10人以下小团队管理手册-学习笔记

【README】 本文总结于《10人以下小团队管理手册》,很nice的一本书,有兴趣的同学可以翻下; 【0】序章 作者作为咨询师发现, 1.下属对主管有不满,主管对下属有怨言; 2.10人以下小团队主管经常会为 如何用…

JavaWeb项目:简易小米商城系统

Web项目:MyShop简易小米商城系统一.系统概述二.系统开发环境三.涉及技术四.系统功能及使用说明五.作者杂谈六.尾声七.gitee地址:(源码见文末) 一.系统概述 本系统是一个电商系统,可供用户注册,登录&#…

HashMap的实现与优化

转载自 HashMap的实现与优化HashMap的优化与实践 本文是基于作者在github上的Android 问题交流讨论坛提问而产生的一篇文章,也是自己早打算开坑的一篇文章。文章首先介绍了hashMap的一些基本知识,然后介绍了它在JDK8下的实现原理,最后着重介绍…

如何确定python开发环境已经配置好_搭建 python 开发环境 前面安装选位置我直接回车了现在我想测试查看目录该怎么办...

展开全部 1 ubuntu中一般安装e5a48de588b662616964757a686964616f31333431343036后的默认路径如下#!/usr/bin/env python #!/usr/locat/bin/python 如果没有找到,可以通过命令查询python路径whereis python which python 2 Windows一般可以进入python>>> i…

转- java单例模式几种实现方式

转自: https://www.cnblogs.com/ngy0217/p/9006716.html ; 单例模式的五种实现方式 1、饿汉式(线程安全,调用效率高,但是不能延时加载): 1 2 3 4 5 6 7 public class ImageLoader{ private static ImageLoade…

IDEA集成maven流程图详细介绍

前言 最近利用两天时间学习了MyBatis以及maven,避免经典的学过就忘记,我打算做出点总结以便日后复习,当然如果能帮到需要的人也是极好的。 一. 初识maven 1.maven是什么 maven是用来帮助我们快速搭建项目结构与开发环境的好工具。回想一下每次新建项…

pythonnumpy教程_Python教程:numpy的基本介绍

标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针。这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象。对于数值运算来说这种结构显…

Java8系列之重新认识HashMap

转载自 Java8系列之重新认识HashMap简介 Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,类继承关系如下图所示:下面针对各个实现类的特点做…

mysql-on duplicate key update实现insertOrUpdate官方文档

【README】 mysql 基于 on duplicate key update filedvalue ; 实现有则更新,没有则插入; 以下内容总结于 https://dev.mysql.com/doc/refman/8.0/en/insert-on-duplicate.html 【1】api 描述 如果指定 ON DUPLICATE KEY UPDATE 子句并且要插入的行…

python统计段落单词词频_使用Python统计文件中词频,并且生成词云

wordcloud Table of Contents 1 怎样使用Python产生词云 from wordcloud import WordCloud import matplotlib.pyplot as plt import jieba # Now, There is no word.txt under this path path_txt "/home/alan/Desktop/word.txt" f open(path_txt, r, encoding U…

IDEA中maven配置MyBatis简单流程

前言 刚学完javaweb,对自己的Dao层代码很不满意的话,可得来学学MyBatis。学习MyBatis既可以改进JDBC的使用,实现Dao层也会变得很简便,下面我将介绍IDEA中maven配置MyBatis简单流程。 如果想了解maven请转到我的上一篇文章中&…