集合运算

Python - 集合与元素之集合定义和基本操作方法

三世轮回 提交于 2020-03-29 07:09:19
集合(set) 定义:由 不同元素 组成的集合,集合中是一组 无序 排列可hash的值(不可变的值)例如数字、字符串、元组,可以作为字典的key 定义集合: # 定义集合 s = {1, 2, 3, 3, 3, 4, 5} print(s) print(type(s)) 输出: {1, 2, 3, 4, 5} <class 'set'> 定义 可变 集合set # 定义可变集合 s = set("hello") # ()内为可迭代类型 print(s) 输出: {'l', 'h', 'o', 'e'} 定义 不可变 集合 # 定义不可变集合 s = frozenset("hello") # ()内为可迭代类型 print(s) 输出: frozenset({'l', 'h', 'e', 'o'}) 集合关系运算(方法)   1、intersection() num1 = {1, 2, 3} num2 = {2, 3, 4} # 求交集 print(num1.intersection(num2)) # 相当于 print(num1 & num2) 输出: {2, 3} {2, 3}   2、union() num1 = {1, 2, 3} num2 = {2, 3, 4} # 求并集 print(num1.union(num2)) # 相当于 print(num1 | num2 输出

Scala数组| 集合

≡放荡痞女 提交于 2020-03-28 15:31:47
arrays :+ 5尾部 头部5 +: arrays TODO 声明不可变数组,不能删; 默认情况下,scala中集合的声明全都是不可变的 val arrays: Array[Int] = Array(1, 2, 3, 4) //增加 不可变使用伴生对象添加数 val newArrays1: Array[Int] = arrays :+5 //1,2,3,4,5 // 增加数据到集合的尾部,产生新的集合 val newArrays2: Array[Int] = 6+:arrays //6,1,2,3,4 // 增加数据到集合的头部,产生新的集合 //println(newArrays.length) //println(arrays == newArrays1) //false ; ==是否是同一块内存 //println(arrays.length) // 修改数据:数组(索引) = 修改的值; 修改,不变的是内存地址,里边内容可以变 arrays(1)=1 println(arrays.mkString(",")) //1,1,3,4 // 获取数组中的数据 //println(arrays(3)) //循环遍历 for (elem <- arrays) { println(elem) } //println(arrays.mkString(",")) // 生成字符串 //

我也简单谈下《Web应用的缓存设计模式》

吃可爱长大的小学妹 提交于 2020-03-26 10:52:15
拜读了Robbin的文章《Web应用的缓存设计模式》http://robbinfan.com/blog/38/orm-cache-sumup ,我觉得大体思想还是值得学习和借鉴的,借这机会顺便简单谈谈我一般的做法,基于它文章Blog的例子和场景。 以读取博客文章列表和文章为例 一、数据库设计 首先,从数据库设计上,我赞同Contents拆分出去,在显示列表时,是没必要读取完整内容的。但如果缓存应用得当,这个可以属于可选项,并非必须。按照我的习惯,表设计会如下: Blogs表,用以存储博客内容 BlogId int 用以存储博客内容,表主键,聚集索引 Title nvarchar(256) 博客标题 Content nvarchar(MAX) 博客内容 FormattedContent nvarchar(MAX) 格式化后博客内容,空间换时间,没必要消耗CPU去格式化markdown。可选项,也可以运算后放缓存 AuthorId   int 和Accounts表关联 Author nvarchar(256) 作者,冗余字段,可以不必查询Accounts表 BlogDate datetime 博客发布时间 补充说明: 1. 适当冗余,例如FormattedContent和Author字段,减少跨表查询或CPU运算 2.

生成函数

强颜欢笑 提交于 2020-03-26 09:22:45
生成函数 普通生成函数(OGF) 定义 对于一类对象构成的集合 \(A\) ,若满足 对于每个元素 \(a\in A\) ,定义非负整数 \(|a|\) 为元素 \(a\) 的“大小”或“权值” 对于给定的 \(n\) ,大小为 \(n\) 的元素的个数是有限的(但 \(A\) 可以是无限集),其对应的元素个数记为 \(A_n\) 我们定义 \(A(x)=\sum\limits_{n\ge 0}A_nx^n\) 为 集合 \(A\) 的普通生成函数。 注意这里的 \(A(x)\) 认为是一个形式幂级数,在 \(\bmod x^n\) 以及系数 \(\bmod P\) 的意义下运算 基本运算 设有两个集合 \(A,B\) 。 定义它们的不交并为 \(C\) ,则 \(C(x)=A(x)+B(x)\) 通俗点其实就是把它们的元素原来是什么样还是什么样塞到 \(C\) 里面 定义两个集合的笛卡尔积为 \(D\) ,则 \(D=A*B\) ,这里指卷积。 意思是对于 \(a\in A,b\in B\) ,我们有 \(d=a+b,|d|=|a|+|b|\) (这里前面可以简单的理解成定义了元素的并 \(b\) ) 序列OGF 对于一类对象构成的集合 \(A\) ,定义 \(\mathbf {SEQ}(A)\) 是由 \(A\) 的元素排列而成的序列组成的集合,对于其中某一个长度为 \(n\)

day03 【List、Set、数据结构、Collections】

。_饼干妹妹 提交于 2020-03-26 01:56:35
day03 【List、Set、数据结构、Collections】 主要内容 数据结构 List集合 Set集合 Collections 教学目标 [ ] 能够说出List集合特点 [ ] 能够说出常见的数据结构 [ ] 能够说出数组结构特点 [ ] 能够说出栈结构特点 [ ] 能够说出队列结构特点 [ ] 能够说出单向链表结构特点 [ ] 能够说出Set集合的特点 [ ] 能够说出哈希表的特点 [ ] 使用HashSet集合存储自定义元素 [ ] 能够说出可变参数的格式 [ ] 能够使用集合工具类 [ ] 能够使用Comparator比较器进行排序 第一章 数据结构 2.1 数据结构有什么用? 当你用着java里面的容器类很爽的时候,你有没有想过,怎么ArrayList就像一个无限扩充的数组,也好像链表之类的。好用吗?好用,这就是数据结构的用处,只不过你在不知不觉中使用了。 现实世界的存储,我们使用的工具和建模。每种数据结构有自己的优点和缺点,想想如果Google的数据用的是数组的存储,我们还能方便地查询到所需要的数据吗?而算法,在这么多的数据中如何做到最快的插入,查找,删除,也是在追求更快。 我们java是面向对象的语言,就好似自动档轿车,C语言好似手动档吉普。数据结构呢?是变速箱的工作原理。你完全可以不知道变速箱怎样工作,就把自动档的车子从 A点 开到 B点

陈纪修数学分析笔记-1.1 集合

陌路散爱 提交于 2020-03-25 10:29:55
近来打算趁着事情较少,学习一下数学分析,毕竟数学这东西,越早越学,越早养成思维,越有益处。 反复选择,最后来B站看了陈纪修的数学分析课程,用ipad写了笔记(也不知道能学多久)。前几年见过有大神用 \(\LaTeX\) 边上课边做笔记,于是我便打算试试Markdown来做一下,先把自己手写的打出来。 结论就是,大神就是大神,我连集合的符号都要不停地百度。。。算了,还是手写方便,更加专注于思路,毕竟 \(y(t)=1 - \frac{e^{-\zeta\omega_n t}}{\sqrt{1-\zeta^2}}\sin(\omega_n \sqrt{1-\zeta^2}t+\theta)\) 和 $y(t)=1 - \frac{e^{-\zeta\omega_n t}}{\sqrt{1-\zeta^2}}\sin(\omega_n \sqrt{1-\zeta^2}t+\theta)$ 相比,前者手写快多了。 所以下文应该是第一篇笔记,也可能是最后一篇。。。 1 集合与元素 §1 集合 集合概念 集合(集) : 具有某种特定性质,具体或抽象的对象汇集的总体。 集合的表示: 枚举法 光基色的集合:{R, G, B} \(\mathbb{N}^{+}={1, 2, 3, ..., n}\) \(\mathbb{Z}=\{0, \pm1, \pm2, ..., \pm n, ...\}\)

java集合框架01

你。 提交于 2020-03-23 06:20:36
List 接口存储一组不唯一(可以重复),有序(插入顺序)的对象 01. ArrayList实现了长度可变的数组,在内存中分配连续的空间。遍历元素和随机访问元素的效率比较高 通过看ArrayList的源码得知: /** * Constructs an empty list with an initial capacity of ten. 构造一个初始容量为十的空列表 */ public ArrayList() { this(10); 调用带参的构造 参数为10 } ArrayList创建的时候,数组初始化长度为10! List list=new ArrayList(-1); 这句话会运行错误! 看源码得知! /** * Constructs an empty list with the specified initial capacity. * * @param initialCapacity the initial capacity of the list * @exception IllegalArgumentException if the specified initial capacity * is negative */ public ArrayList(int initialCapacity) { super(); if (initialCapacity < 0) /

java集合类分析-hashmap

为君一笑 提交于 2020-03-22 08:13:11
一、HashMap概述 二、HashMap的数据结构 三、HashMap源码分析 1、关键属性 2、构造方法 3、存储数据 4、调整大小 5、数据读取 6、HashMap的性能参数 一、HashMap概述   HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。   值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections类的静态方法synchronizedMap获得线程安全的HashMap。 Map map = Collections.synchronizedMap(new HashMap()); 二、HashMap的数据结构   HashMap的底层主要是基于数组和链表来实现的,它之所以有相当快的查询速度主要是因为它是通过计算散列码来决定存储的位置。HashMap中主要是通过key的hashCode来计算hash值的,只要hashCode相同,计算出来的hash值就一样。如果存储的对象对多了,就有可能不同的对象所算出来的hash值是相同的,这就出现了所谓的hash冲突。学过数据结构的同学都知道

集合框架问题详解

倾然丶 夕夏残阳落幕 提交于 2020-03-21 18:03:49
3 月,跳不动了?>>> 什么是集合??? 用一句话来概括就是,集合就是存放“类对象“的容器,集合类存放于java.util包中, 集合类存放的都是对象的引用,而非对象本身,出于表达上的便利,我们称集合中的对象就是 指集合中对象的引用(reference)。 集合类型主要有3种:set(集)、list(列表)和map(映射)。集合接口分为:Collection和Map,list、set实现了Collection接口。 集合相对于数组的作用 集合相对于数组来说有很多的优势,比如说集合的长度可以改变,但是数组的长度就不能改变,只要确定后就永远都不可以改变。集合大体分为三种,list集合 set集合和map集合。这三种集合各有优势,我们平时用的大多是list和map。list集合的优势在与读取速度快,适合用来遍历数据,因为list集合根本还是数组,只不过是在数组上面做了很多的运算才使得他可一改变长度。而map集合的优势是他查找数据容易,应为他包含了两个对象,可以很快的查找数据,改变数据。 使用Iterator遍历结合的方法 public class MyTest { public static void main (String[] args) { //1 、 iterator 迭代 ArrayList 集合 List list = new ArrayList<>() ; // 集合

java中常用的数据结构--Collection接口及其子类

青春壹個敷衍的年華 提交于 2020-03-21 03:49:29
   java中有几种常用的数据结构,主要分为Collection和map两个主要接口 (接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。  一、集合和数组的区别 二、Collection集合和Map集合 三、Collection接口 1、定义 public interface Collection<E> extends Iterable<E> {} 它是一个接口,是高度抽象出来的集合,它包含了集合的基本操作:添加、删除、清空、遍历(读取)、是否为空、获取大小、是否保护某元素等等。 Collection接口的所有子类(直接子类和间接子类)都必须实现2种构造函数:不带参数的构造函数 和 参数为Collection的构造函数。带参数的构造函数,可以用来转换Collection的类型。 2、Collection集合的API 四、List 1、定义:    List是一个继承于Collection的接口,即List是集合中的一种。List是有序的队列,List中的每一个元素都有一个索引;第一个元素的索引值是0,往后的元素的索引值依次+1。和Set不同,List中允许有重复的元素。 public interface List<E> extends Collection<E> {} 2、List接口的实现类 (1)ArrayList:底层数据结构是 数组