遍历

jquery的each方法遍历对象

南楼画角 提交于 2019-12-06 21:13:50
//遍历对象 var d=$('div').each(function(index,domelement){ if(this.id === 'box2') { // return false;//fasle相当于for循环中的break,只有1有title return true//true 相当于for循环的continute,1、3都有title } this.title=this.id }) 来源: CSDN 作者: yin_991 链接: https://blog.csdn.net/yin_991/article/details/81042982

垃圾回收机制汇总

可紊 提交于 2019-12-06 21:02:32
平时在写代码的时候,关注的是写出能实现业务逻辑的代码,因为现在计算机的内存也比较宽裕,所以写程序的时候也就没怎么考虑垃圾回收这一方面的知识。俗话说,出来混总是要还的,所以既然每次都伸手向内存索取它的资源,那么还是需要知道什么时候以及如何把它还回去比较好。 Python 垃圾回收机制 ---》https://blog.csdn.net/cn_wk/article/details/51707206 python采用计数引用(Reference Counting)为主,来跟踪和回收垃圾。采用标记清除(Mark and Sweep)来解决容器可能产生的循环引用问题、分代回收(Generation Collection)以空间换时间的方法提高垃圾回收效率。 引用计数 Python中一切皆对象,它们的核心就是一个结构体PyObject,其中有个obj_refcnt字段,用于记录对象被引用的次数:当一个对象有新的引用时,它的obj_refcount 加1;当对象的引用被删除时,该对象的obj_refcount减1;当一个对象的obj_refcount = 0 时,则说明它不再被其他对象引用,就可以回收了。 ———————————————— https://blog.csdn.net/xiongchengluo1129/article/details/80462651 https://www

Lucene搜索核心代码TermInfosReader

萝らか妹 提交于 2019-12-06 15:09:23
前置知识:   词元字典文件(tis):     文件结构:       TermInfos --> <TermInfo>TermCount       TermInfo --> <Term, DocFreq, FreqDelta, ProxDelta, SkipDelta>     文件中的term按照从小到大排序,排序规则:先按照属性名排,如果属性名相同,再按照词元内容排,简单的字符比较。tis文件中存储的词元列表按照IndexInterval分成多个块,后面在查询逻辑里叙述通过块如何优化搜索。   词元索引文件(tii):     结构:       TermIndices --> <TermInfo, IndexDelta>IndexTermCount       IndexDelta --> VInt   // IndexDelta表示这个索引词元在tis文件中的具体位置,类似指针     tii文件是tis文件的索引文件,按照tis文件中存储的IndexInterval间隔存储tii文件,tii文件中词元内容和tis一样,除了词元外,tii文件中每个词元附加一个IndexDelta数据,存储了该词元在tis文件中的位置, 核心方法一: TermInfo get(Term term) 方法描述:方法传入term,返回TermInfo

二叉树的遍历小记

◇◆丶佛笑我妖孽 提交于 2019-12-06 14:23:39
二叉树前中后序的遍历的小总结:   其中在用栈实现前后序的遍历过程中,后续遍历可以看成前序遍历来实现,只是路径的方向正好和前序遍历相反,即从根节点的右标记点为起始,左标记点为终点,取得的结果取逆序就为后续遍历的结果,通过后续遍历的图一目了然。 来源: https://www.cnblogs.com/yysumer/p/11989595.html

面试|海量文本去重~simhash

徘徊边缘 提交于 2019-12-06 13:55:43
simhash算法是google发明的,专门用于海量文本去重的需求,所以在这里记录一下simhash工程化落地问题。 下面我说的都是工程化落地步骤,不仅仅是理论。 背景 互联网上,一篇文章被抄袭来抄袭去,转载来转载去。 被抄袭的文章一般不改,或者少量改动就发表了,所以判重并不是等于的关系,而是相似判断,这个判别的算法就是simhash。 simhash计算 给定一篇文章内容,利用simhash算法可以计算出一个哈希值(64位整形)。 判别两篇文章是相似的方法,就是两个simhash值的距离<=3,这里距离计算采用汉明距离,也就是2个simhash做一下异或运算,数一下比特位=1的有N位,那么距离就是N。 现在问题就是,如何计算文本的simhash? 分词+权重 首先需要将文章作分词,得到若干个(词组,权重)。 分词我们知道很多库都可以实现,最常见的就是结巴分词。权重是怎么得来的呢? 权重一般用TF/IDF算法,TF表示词组在本文章内的频次比例,出现越多则对这篇文章来说越重要,文章分词后TF可以立马计算出来。 IDF是词组在所有文章中的出现比例,出现越多说明词组对文章的区分度越低越不重要,但是IDF因为需要基于所有文章统计,所以一般是离线去批量计算出一个IDF字典。 结巴分词 支持加载IDF词典并且提供了一个默认的词典,它包含了大量的词组以及基于海量文本统计出来的IDF词频

leetcode 145. 二叉树的后序遍历

混江龙づ霸主 提交于 2019-12-06 12:59:54
给定一个二叉树,返回它的 后序 遍历。 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [3,2,1] 1 //递归算法 2 class Solution { 3 public List<Integer> postorderTraversal(TreeNode root) { 4 List<Integer> list = new ArrayList<Integer>(); 5 if(root==null) return list; 6 postorder(root,list); 7 return list; 8 } 9 public List<Integer> postorder(TreeNode node,List<Integer> list){ 10 if(node.left!=null)postorder(node.left,list); 11 if(node.right!=null)postorder(node.right,list); 12 list.add(node.val); 13 return list; 14 } 15 } 16 //迭代算法 17 class Solution { 18 public List<Integer> postorderTraversal(TreeNode root) { 19 List<Integer> list

Lucene BooleanQuery相关算法

我与影子孤独终老i 提交于 2019-12-06 12:53:23
BooleanQuery对两种不同查询场景执行不同的算法: 场景1: 所有的子句都必须满足,而且所有的子句里没有嵌套BooleanQuery。 例: a AND b AND c 上面语句表示要同时包含a,b,c三个字符(词元)的文档,假如现在索引里包含a的文档有4,6,8;b的文档有:2,4,6;c的文档有:3,4,5,这个语句就是找出编号为4的这个文档。 注:在倒排索引里存储的包含某个词元的文档列表都是从小到大排列的。 初始状态如下: a b c -> 4 -> 2 -> 3 6 4 4 8 6 5 指针表示当前遍历到哪个文档 第一步:按照每个词元文档列表的第一个文档对词元排序。排序以后的状态如下: b c a -> 2 -> 3 -> 4 4 4 6 6 5 8 第二步:判断第一个词元(b)的当前遍历文档(2)是否小于最后一个词元(a)的当前遍历文档(4)。如果小于,则表示第一个词元的当前遍历文档不是符合的文档,如果是符合的最后一个词元的当前文档应该和第一个词元的相同。 第三步: 第一个词元文档位置(2)跳转到最后一个词元的当前遍历的文档(4),跳转以后的状态如下: b c a 2 -> 3 -> 4 -> 4 4 6 6 5 8 第四步: 将第一个词元放到词元列表最后,重置位置后状态如下: c a b -> 3 -> 4 2 4 6 -> 4 5 8 6 重复第二、三、四步

文本摘要生成方法

妖精的绣舞 提交于 2019-12-06 12:39:12
最近在搞聊天数据分析,对文本摘要有需求,学习一下该方法。 一、文本摘要(Document Summarization) 文本摘要,一般地我们会把它分成抽取式文本摘要和生成式文本摘要。就目前的形势而言,工业界应用广泛的还是抽取式文本摘要。抽取式文本摘要的优点很多,主题不易偏离、适应性广、速度快。 抽取式文本摘要,最最传统的方案,无疑便是Lead3算法了。 github如下:https://github.com/yongzhuo/nlg-yongzhuo/tree/master/nlg_yongzhuo/text_summarization/extractive_sum/nous_base 二、Lead3 Lead3,顾名思义,就是最开始的3个句子,很有意思,就这一个超级简单的算法,就能达到很好的效果,例如bertsum中的测评结果,已经接近Transformer了: 我代码获取的是top2以及最后1句。 代码地址: https://github.com/yongzhuo/nlg-yongzhuo/blob/master/nlg_yongzhuo/text_summarization/extractive_sum/nous_base/lead_3/lead_3.py 三、keyword keyword,包括word_significance,思想是抽取最有意义的词语

python 删除文件和读取文件

别来无恙 提交于 2019-12-06 10:06:29
import osos.walk(path) path是指想要遍历的文件夹的路径 这个函数得到的结果是一个或多个tuple,个数取决于路径下是否有文件夹:如果没有文件夹的话,那么只有一个tuple,如果有的话,假如有3个,那么就会有4个tuple。 而每个tuple中有三项: 1.当前文件夹的路径(str类型) 2.当前文件夹中的所有文件夹名称(list类型) 3.当前文件夹中所有文件的名称 os.listdir(path) listdir()函数能得到文件夹下所有文件(包括文件夹)的名称,但是无法获取子文件夹的状态 import os path = "D:/Python34/news" #文件夹目录 files= os.listdir(path) #得到文件夹下的所有文件名称 s = [] for file in files: #遍历文件夹 if not os.path.isdir(file): #判断是否是文件夹,不是文件夹才打开 f = open(path+"/"+file); #打开文件 iter_f = iter(f); #创建迭代器 str = "" for line in iter_f: #遍历文件,一行行遍历,读取文本 str = str + line s.append(str) #每个文件的文本存到list中 print(s)    top = 'D:\

java中fail-fast 和 fail-safe的区别

谁说我不能喝 提交于 2019-12-06 09:28:19
首先要弄明白同步修改的概念,指的是一个或者多个线程正在遍历一个集合,此时另一个线程修改了Collection的数据结构(添加,删除或者修改); 1.fail-fast机制 fail-fast机制在集合被遍历时,如果集合元素被修改,直接抛出Concurrent Modification Exception,有两种情况; 1>单线程环境下 集合被创建后,在遍历它的过程中修改了结构。注意 remove()方法会让expectModcount和modcount 相等,所以是不会抛出这个异常。 2>多线程环境下 一个线程在遍历元素时,另一个线程对元素进行了修改 fail-fast机制校验的原理是内部维护了一个标识“mode”,当集合数据结构被修改时,修改mode;在每次遍历的next和hasNext方法会去检验“mode”是否被修改,若修改则抛出Concurrent Modification Exception 例如ArrayList迭代部分的源码 private class Itr implements Iterator<E> { int cursor; // index of next element to return int lastRet = -1; // index of last element returned; -1 if no such int