12 tinyid

尚未进行身份认证

Java/Python Hadoop/Spark/Presto/Kafka/Druid numpy/matplotlib/pandas/scipy

等级
TA的排名 4k+

Python中的上下文管理器

Python中的上下文管理器,实际上就是实现了上下文管理协议的对象。在Python中打开文件的时候,我们需要确保文件被使用完毕之后,对其进行关闭操作——调用文件对象的close()方法。如果不使用上下文管理器,经典的处理方式就是将close()方法的调用放在一个finally语句中:f = open("www.log")try: print("do something with ...

2019-07-09 16:52:40

Python中的迭代器

以下是Python文档中对于迭代器类型的描述Python有一个在容器上进行迭代的概念。其实现需要两个方法来支持;这让用户自己定义的类也可以支持迭代。序列类型都支持迭代方法。容器对象需要提供一个方法来提供对于迭代的支持:container.__iter__():这个方法返回一个迭代器对象。这个对象必须支持后面所描述的迭代器协议。如果一个容器要支持不同类型的迭代,则可以提供额外的方法来专...

2019-06-18 20:04:30

理解Python中的生成器

Python生成器是什么?先说一下生成器函数,抽象地说,生成器函数就是一个顺序执行过程的抽象。具体地说,它就是一种特殊的函数,这种特殊性源于这个函数中出现了一个yield关键字。解释器在发现函数中有yield关键字时,将这个函数标记为一个生成器函数,其执行的结果会返回一个生成器,而这个生成器是支持迭代器协议的。创建一个生成器函数生成器函数的创建是非常简单的:In [1]: def...

2019-05-15 23:26:10

语义网组件

结构化数据处理依赖于对某个知识领域(感兴趣的领域、学科)内的概念、术语和关系进行描述的技术。知识表示和推理被用来在AI中以机器可读的形式表示信息的,计算机系统可以利用这些信息完成复杂的任务。分类学和受控词表是术语的结构化集合,可以将它们作为元数据元素值来使用。比如,一个事件词汇可以被用来以机器可读的形式来表述音乐会、演讲和节日,而一个组织词汇适用于产出关于一个学校、一个公司或一个俱乐部的机器可读的...

2018-10-08 14:16:53

Python小技巧5:需要动态生成列表的时候,考虑使用生成器替代

典型代码:defmygen():i=0whilei<100:yieldii+=1if__name__=='__main__':gen=mygen()foritemingen:print(item)什么是生成器:生成器是一个包含yield表达式的函数,只要一个函...

2018-07-07 19:02:08

Python中使用threading.Condition交替打印两个字符的程序

这个程序涉及到两个线程的的协调问题,两个线程为了能够相互协调运行,必须持有一个共同的状态,通过这个状态来维护两个线程的执行,通过使用threading.Condition对象就能够完成两个线程之间的这种协调工作。threading.Condition默认情况下会通过持有一个ReentrantLock来协调线程之间的工作,所谓可重入锁,是只一个可以由一个线程递归获取的锁,此锁对象会维护当前锁的所...

2018-07-07 01:12:27

Hive应用性能优化

1. 将表分区(Partitioned Table)通过将表划分为相互独立的分区,对应于HDFS上相互独立数据目录,在查询时通过指定分区列上的条件,将读取数据的范围限定在关心的数据上,而不需要读取全表数据,继而提升查询性能;通过CREATE TABLE语句实现。2. 分桶(Bucked Table)所谓分桶就是将表中的内容以某列为基准,对所指定的桶的个数N进行模运算,继而将数据划分成N份,对应于H...

2018-07-03 11:42:36

实现一个非确定性下推自动机(DPDA - Deterministic PushDown Automaton)

一个非确定下推自动机,是一个在有限状态机的基础上,辅之以一个栈数据结构作为外部存储,而非确定性来自于DPDA每一步计算后,其机器配置的不确定性。一个应用DPDA的典型例子是确定一个字符串是否是回文字符串,类似于aba,abba,babbaabbab等。下面我们就使用Python语言来一步步来实现一个简单的对于DPDA的模拟。我们实现DPDA的第一步,首先要抽象出一个栈的数据结构,而为了保证每次...

2018-05-07 19:58:35

uWSGI Preforking对比lazy-apps 和lazy

这是uWSGI项目有争议的选项之一。默认情况下,uWSGI会在第一个启动的进程中加载整个应用,并在加载完毕之后,会将自己多次fork()。这是常见的Unix模式,这能够显著降低应用的内存使用量,允许使用一些有趣的技巧,同时对于某些语言来说,这也会给你带来一些令人头疼的问题。虽然它的名字,uWSGI,来自于一个Perl应用服务器(但不叫uWSGI,也没有开源),在Perl的世界中,preforkin...

2018-03-19 14:17:34

映射类型(mapping type)从Elasticsearch中移除

原文:https://www.elastic.co/guide/en/elasticsearch/reference/current/removal-of-types.html注意:在Elasticsearch6.0.0或者或者更新版本中创建的索引只会包含一个映射类型(mappingtype)。在5.x中创建的具有多个映射类型的索引在Elasticsearch6.x中依然会正常工作。在

2018-02-01 00:38:02

【备忘】:fetch API获取返回值的方式

使用fetchAPI来做后端请求,相比较传统的Ajax方式,在写出的代码上更加容易理解,也更便于别人看懂。但是在使用的过程中,经常有同学不能顺利从传统的Ajax请求(如果使用jquery的话,就是$.ajax,$.post,$.get)转移到新的fetch方式,很多时候就是卡在了获取响应数据的环节上。用fetch来获取数据,如果响应正常返回,我们首先看到的是一个response对象,

2017-06-30 21:32:58

Nginx允许跨域访问的配置问题

如今前后端分离的模式,越来越成为很多团队的选择,通过分离前后端的工作,是的双方更能关注于自己核心的工作领域,只需要通过相应的API接口进行交互。前后端工作的分离带来的一个问题就是前后端在部署上分离的可能性,在部署上的分离又会触发浏览器安全机制——同源策略,从而导致不能访问非同域的资源。同样要解决跨域访问的问题,网上的解决方案也有很多,就是在跨域资源的响应中,加上允许跨域访问头信息即可。

2017-06-23 16:01:13

Python:从subprocess运行的子进程中实时获取输出

有些时候,我们需要将某些程序放到子进程中去运行,以达到整合系统的目的。在Python中,一个非常好的选择就是使用subprocess模块,本模块为开辟子进程去执行子程序提供了统一的接口,更加便于学习和使用。 同时,对于在子进程里的程序,我们希望能够实时获取其输出,以在主进程中打印相关信息,使我们能够了解当前子程序的执行进度。对此,subprocess模块也提供了相应的参数,能够将子程序的标...

2017-06-23 12:25:14

通过Python3.5来学习几种不同的IO模型

计算机的核心资源,基本上就是CPU和内存。我们下面的讨论可以假定CPU只有一个物理核心。从目前的情况看,CPU很快,IO很慢,即使是物理内存也很慢,否则就不需要CPU设置多层的高速cache了。CPU主要快在哪里?1、频率;2、指令执行效率,这里主要是硬件级别的指令分阶段并行优化。所以要充分利用CPU的指令来完成我们的计算任务。对于一个物理CPU来说,每时每刻只

2016-11-28 23:04:08

Python小技巧 4:利用字典的默认行为

典型代码1:from collections import defaultdictif __name__ == '__main__': data = defaultdict(int) data[0] += 1 print(data)输出1:defaultdict(, {0: 1})典型代码2:if __name__ == '__main__': data = {'

2016-11-06 00:01:17

Python小技巧 3:列表项的排序

典型代码1:data_list=[6,9,1,3,0,10,100,-100]data_list.sort()print(data_list)输出1:[-100,0,1,3,6,9,10,100]典型代码2:data_list=[6,9,1,3,0,10,100,-100]data_list_copy=sorted(d

2016-10-24 13:53:18

Python小技巧 2:列表项的推导式和过滤操作

典型代码1:data_list = [1, 2, 3, 4, 0, -1, -2, 6, 8, -9]data_list_copy = [item for item in data_list]print(data_list)print(data_list_copy)输出1:[1, 2, 3, 4, 0, -1, -2, 6, 8, -9][1, 2, 3, 4, 0, -1,

2016-10-19 17:55:28

Python小技巧 1:列表项的拼接

典型代码:data_list=['a','b','c','d','e','f']separator='\t'data_joined=separator.join(data_list)print(data_joined)其输出为:a b c d e f应用场景在实现很多业务需求的时候,需要将列表中的每一项按照某种分隔符拼接成一个串,以完成某种序

2016-10-15 10:26:05

使用Python接入银联支付和支付宝支付的实现

前置条件:需要安装Python的OpenSSL模块,我使用的版本是16.1.0,可以使用pip install pyopenssl来安装一、支付宝支付1. 使用RSA公钥加密系统进行签名和签名验证,需要自己生成一个RSA私钥和对应的一个RSA公钥(在Linux下可以使用ssh-keygen命令来生成),公钥需要上传至支付宝,供支付宝对开发者发送的请求做签名验证使用;而同时支付宝会提供一个R

2016-09-26 13:46:42

Maven POM中的各种scope的行为总结

compile:默认的scope。任何定义在compilescope下的依赖将会在所有的classpaths下可用。maven工程会将其打包到最终的artifact中。如果你构建一个WAR类型的artifact,那么在compilescope下引用的JAR文件将会被集成到WAR文件内。provided:这个scope假定对应的依赖会由运行这个应用的JDK或者容器来提供。最好的例子就是serv...

2016-08-16 15:19:35

查看更多

勋章 我的勋章
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。