集合运算

Redis常用命令大全

久未见 提交于 2019-12-15 05:28:41
doc 环境下使用命令: keys 命令 ? 匹配一个字符 * 匹配任意个(包括0个)字符 [] 匹配括号间的任一个字符,可以使用 "-" 符号表示一个范围,如 a[b-d] 可以匹配 "ab","ac","ad" \x 匹配字符x,用于转义符号,如果要匹配 "?" 就需要使用 \? 判断一个键值是否存在 exists key 如果存在,返回整数类型 1 ,否则返回 0 删除键 del key [key.....] 可以删除一个或多个键,返回值是删除的键的个数 注意:不支持通配符删除 获得键值的数据类型 type key 返回值可能是 string(字符串类型) hash(散列类型) list(列表类型) set(集合类型) zset(有序集合类型) 赋值与取值 set key value 赋值 get key 取值 递增数字 incr key 当存储的字符串是整数形式时,redis提供了一个使用的命令 incr 作用是让当前的键值递增,并返回递增后的值 incr num 当要操作的键不存在时会默认键值为 0 ,所以第一次递增后的结果是 1 ,当键值不是整数时 redis会提示错误 增加指定的整数 incrby key increment incrby 命令与 incr 命令基本一样,只不过前者可以通过 increment 参数指定一次增加的数值如: incrby num 2

第一章 python数据结构和算法--1.9 查找两字典的相同点

ⅰ亾dé卋堺 提交于 2019-12-15 01:15:40
问题 怎样在两个字典中寻寻找相同点(比如相同的键、相同的值等等)? 解决方案 考虑下面两个字典: a = { 'x' : 1 , 'y' : 2 , 'z' : 3 } b = { 'w' : 10 , 'x' : 11 , 'y' : 2 } 为了寻找两个字典的相同点,可以简单的在两字典的 keys() 或者 items() 方法返回结果上执行集合操作。比如: a . keys ( ) dict_keys(['x', 'y', 'z']) a . keys ( ) & b . keys ( ) {'x', 'y'} a . keys ( ) - b . keys ( ) {'z'} a . items ( ) & b . items ( ) {('y', 2)} 这些操作也可以用于修改或者过滤字典元素。 比如,假如你想以现有字典构造一个排除几个指定键的新字典。 下面利用字典推导来实现这样的需求: c = { key : a [ key ] for key in a . keys ( ) - { 'z' , 'w' } } c {'x': 1, 'y': 2} 讨论 一个字典就是一个键集合与值集合的映射关系。 字典的 keys() 方法返回一个展现键集合的键视图对象。 键视图的一个很少被了解的特性就是它们也支持集合操作,比如集合并、交、差运算。 所以

文本相似度计算-JaccardSimilarity和哈希签名函数

萝らか妹 提交于 2019-12-14 21:10:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在目前这个信息过载的星球上,文本的相似度计算应用前景还是比较广泛的,他可以让人们过滤掉很多相似的新闻,比如在搜索引擎上,相似度太高的页面,只需要展示一个就行了,还有就是,考试的时候,可以用这个来防作弊,同样的,论文的相似度检查也是一个检查论文是否抄袭的一个重要办法。 文本相似度计算的应用场景 过滤相似度很高的新闻,或者网页去重 考试防作弊系统 论文抄袭检查 光第一项的应用就非常广泛。 文本相似度计算的基本方法 文本相似度计算的方法很多,主要来说有两种,一是 余弦定律 ,二是 JaccardSimilarity 方法, 余弦定律 不在本文的讨论范围之内,我们主要说一下 JaccardSimilarity 方法。 JaccardSimilarity方法 JaccardSimilarity 说起来非常简单,容易实现,实际上就是两个集合的交集除以两个集合的并集,所得的就是两个集合的相似度,直观的看就是下面这个图。 数学表达式是: |S ∩ T|/|S ∪ T| 恩,基本的计算方法就是如此,而两个集合分别表示的是两个文本,集合中的元素实际上就是文本中出现的词语啦,我们需要做的就是把两个文本中的词语统计出来,然后按照上面的公式算一下就行了,其实很简单。 统计文本中的词语 关于统计文本中的词语,可以参考我的另外一篇博文

学了这篇redis从入门到精通,redis笔记全收录,必须收藏

别来无恙 提交于 2019-12-12 10:17:57
一、概述 二、数据类型 STRING LIST SET HASH ZSET 三、数据结构 字典 跳跃表 四、使用场景 计数器 缓存 查找表 消息队列 会话缓存 分布式锁实现 其它 五、Redis 与 Memcached 数据类型 数据持久化 分布式 内存管理机制 六、键的过期时间 七、数据淘汰策略 八、持久化 RDB 持久化 AOF 持久化 九、事务 十、事件 文件事件 时间事件 事件的调度与执行 十一、复制 连接过程 主从链 十二、Sentinel 十三、分片 十四、一个简单的论坛系统分析 文章信息 点赞功能 对文章进行排序 参考资料 一、概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。 二、数据类型 数据类型 可以存储的值 操作 STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作 对整数和浮点数执行自增或者自减操作 LIST 列表 从两端压入或者弹出元素 对单个或者多个元素进行修剪, 只保留一个范围内的元素 SET 无序集合 添加、获取、移除单个元素 检查一个元素是否存在于集合中 计算交集、并集、差集

Python编程高手之路——数据类型

*爱你&永不变心* 提交于 2019-12-10 23:32:52
三、数据类型 3.1 数据类型 3.1.1 数字类型int和float 数字类型即变量的值,如age=18,18就是我们保存的值; 变量是用来反映/保存状态以及状态变化的,针对不同的状态应该用不同的数据去标识; 数字类型只能存储一个值,是不可变类型(不可变类型可以哈希,后面的章节会讲解哈希) 3.1.2 int类型常用的方法 bin()、oct()、hex()在进制转换中经常用到; print ( bin ( 3 ) ) # 十进制转成二进制,0b11 print ( oct ( 8 ) ) # 十进制转成八进制,0o10 print ( hen ( 16 ) ) # 十进制转成十六进制,0x10 在进行用户交互程序的时候常用.isdigit()(该函数的功能是判断字符串是否全部只由数字组成,如果是,返回True,否则返回False)判断用户输入是不是数字来进行下一步操作。这样避免了程序出错。但是需要注意用户输入的内容默认是字符串,判断一个字符串是否是数字,可以使用下面的方法。 age = input ( "your age>>:" ) if age . isdigit ( ) : age = int ( age ) age += 1 print ( age ) 3.1.3 Python其它数字类型(了解) #int(整型) 在32位机器上,整数的位数为32位,取值范围为 − 2

JAVA萌新学习day15 集合

让人想犯罪 __ 提交于 2019-12-10 19:50:59
JAVA萌新学习day15 集合 一.集合 1.概念 1.1 集合:就是一个储存数据的容器。 集合与数组一样,也是一个容器,与数组的区别: 1)数组长度固定,集合长度不固定。 2)数组可以储存基本类型和引用类型,集合中存储的元素类型只能是引用类型。 1.2集合与数组的对比 相同点:都是数据的容器,在一个数组或集合中可以储存多个数据。 不同点: 元素:数组中的元素只能是相同,集合中的元素是任意的。数组中可以储存基本类型和引用类型,集合只能存储引用类型。 长度(元素个数):数组是定长的,一旦初始化长度就不可以修改。几何长度可以修改,可以删除元素和添加元素。 二.代码部分 Dog package com . qf . java1904 . day15 ; public class Dog { //名称 String name ; //年龄 int age ; //品种 String brand ; public Dog ( ) { this ( "" , 0 , "" ) ; } public Dog ( String name , int age , String brand ) { this . name = name ; this . age = age ; this . brand = brand ; } public String getName ( ) { return

python set集合(16)

戏子无情 提交于 2019-12-10 14:22:35
目录 一.set集合简介 二.set集合常用函数 三.set集合运算符 ​ 在python变量中除了以前文章所提到的整形int / 浮点数float / 布尔值bool / 列表list / 字典dict 之外,还有一个类型我们还没有做详细介绍,这个变量类型就是集合set。 一.set集合简介 python set集合使用大括号 { } 表示,与字典dict不同的是set集合并没有key/value键值对,主要有以下两个特点: 1.元素不允许重复 2.set 不记录元素的添加顺序,即是无序的,和字典类似 # !usr/bin/env python # -*- coding:utf-8 _*- """ @Author:何以解忧 @Blog(个人博客地址): shuopython.com @WeChat Official Account(微信公众号):猿说python @Github:www.github.com @File:python_set.py @Time:2019/11/09 21:25 @Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累! """ # 创建一个空集合set set_a = set() # 打印集合set print(set_a) # 查看类型 print(type(set_a)) print("***"*20) #

python元组、序列、字典、集合

浪子不回头ぞ 提交于 2019-12-10 02:17:18
python 官方文档-入门教程–20191209 5 数据结构 5.3 元组和序列 列表和字符串有很多的共同特性,例如索引和切片,是序列数据类型 元组也是 元组和列表看起来很像,但它们通常是在不同的场景被使用,有着不同的用途, 元组是不可变的,其序列通常包含不同种类的元素,并且通过解包或者索引来访问, 列表是可变的,并且列表中的元素一般是同种类型的,并且通过迭代访问。 一个特殊的问题是构造包含0个或1个元素的元组:为了适应这种情况,语法有一些额外的改变。空元组可以直接被一对空圆括号创建,含有一个元素的元组可以通过在这个元素后添加一个逗号来构建(圆括号里只有一个值的话不够明确)。丑陋,但是有效。 # 元组 t = ( 12345 , 54321 , 'hello' ) print ( t ) u = ( t , ( 1 , 2 , 3 ) ) print ( u ) x , y , z = t print ( x ) print ( y ) print ( z ) 运行结果: ( 12345 , 54321 , 'hello' ) ( ( 12345 , 54321 , 'hello' ) , ( 1 , 2 , 3 ) ) 12345 54321 hello 语句 t = 12345, 54321, ‘hello!’ 是 元组打包 个例子:值 12345, 54321 和

线性基

…衆ロ難τιáo~ 提交于 2019-12-10 00:07:44
线性基是一种针对异或运算的工具。 线性基的定义:对于一个序列,我们构造一个集合,使得序列中的每一个数都可以有集合中的一些数异或起来得到。 构造方式 for(i=1;i<=n;i++) { x=a[i]; for(j=len;j>=1;j--) if((x>>(j-1))%2==1) if(d[j]==0){d[j]=x;break;} else x=x^d[j]; } 我们逐一加入序列中的数x。每加入一个数时,我们从len到1比较目前线性基中的数(j)。如果x的第j位为1,那么就判断一下d[j]是否有值,如果没有的话那么就将x插入在d[j],否则将x异或上d[j]。最终求出来的d就是当前序列的线性基。 证明如下: 1、如果x没有被加入,则一定是x被异或成了0,那么就一定存在d[a]^d[b]^d[c]...=x。从上式中我们可以看出x可以被d中的数异或得到。 2、如果x成功被加入,那么假设x在加入d之前异或了d[a]、d[b]、d[c]...,x插在了d[j],则x^d[a]^d[b]^d[c]...=d[j],所以x=d[a]^d[b]^d[c]...^d[j]。这样x又可以被d中的数异或得到了。 判断一个数是否能被序列中的数异或得到 假设判断的数为v,那么我们按照上面的方式将v加入d中,如果能成功加入那么v就不能被表示,如果不能加入那么v就可以被表示。 求异或的最大值

MongoDB安装与基本操作

馋奶兔 提交于 2019-12-09 23:00:57
MongoDB MongoDB是由10gen公司(现已改名为MongoDB Inc.)用C++语言研发的一款数据库,于2009年开源,MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的 MongoDB按照类似于JSON的格式存储数据,称作BSON (binary json),由成对的field和value构成,value除了数值和字符之外也可以包括数组([ ]),其他文档等 每一条数据称作一个文档(document) 相对传统关系型数据库,文档之间可以有不一样的格式(字段field),因此更加灵活 可以为数据创建索引,使用特定查询方式来分析统计数据 MongoDB开源免费,遵从GNU GPL协定 下载地址 官网下载地址 Mongodb术语与关系型数据库差异 传统RDBMS(MySQL) MongoDB术语 说明 DATABASE DATABASE 数据库 TABLE COLLECTION 表/集合 ROW DOCUMENT 行/文档 COLUMN FIELD 列(字段)/ 字段(域) INDEX INDEX 索引 TABLE JOIN 连接运算;MongoDB不支持集合间连接运算 PRIMARY KEY PRIMARY KEY 主键,MongoDB默认使用_id field作为主键 实验环境 centos7 192.168