图书 •
828 引用 •
203 回帖 •
3 关注
博客
关注
-
10.1 主键 在讲结构化数据概念时,我们说过数据表的字段有名字,但记录却没有名字。那么我们用什么办法来标识一条记录和另一条记录的不同呢?我们知道,每条记录都对应着某个事物的信息,到底是哪个呢 ..
-
9.3 有序分组 我们说过,排列、序列这些集合都是有序的,经常会有成员的位置信息参与到计算中。分组也不例外,分组键也有可能是和成员序号相关的。 比如,我们想把人员表每 3 个分成一组: A 1 ..
-
[链接]9.2 枚举与对齐 将分组键相等的成员分到一个组,这种分组称为等值分组。等值分组满足这样两个特点: 1) 原集合的所有成员都在且只在唯一的组中; 2) 没有一个组是空集; 满足这种特点 ..
-
9.1 分组与汇总 当事物比较多的时候,人们会习惯将这些事物按属性分成若干类别,然后考察每个类别的一些汇总信息,这个操作表现在结构化数据上就叫分组。分组的具体动作为:把一个数据表中的记录按某个 ..
-
8.5 字段上的计算 我们前面说过,结构化数据在行和列方向的能力是不对称的,方便的批量运算通常只对行方向提供,而列总是以独立的个体出现。但我们在个别时候也需要对列方向也进行一些整体运算,也就是 ..
-
[链接]8.4 循环函数 即然排列(序表也是排列)都可以看成是序列,那么针对这些对象应该也能使用循环函数了,我们已经用过 new()和 derive() 了,再来试试以前学过的循环函数,继续使 ..
-
[链接]8.3 序表生成 为了进一步学习排列上的运算,我们需要一个记录数多一点的序表,比如前面用过的四个字段的序表:name、sex、weight、height,能产生上百条记录再来做实验就方 ..
-
8.2 序表与排列 有了结构化数据的基本概念后,我们来学习如何处理这种数据,也就是在前言中说的本书的后半部分内容。 用于处理结构化数据的程序语言中,当前应用最广的是 SQL。SQL 全称是 S ..
-
8.1 结构化数据 从这一章起,我们开始学习在日常工作中天天都要打交道的表格数据及其处理手段。 在前面合并 Excel 文件的例子中,其实我们已经见识过这种表格了: [图片] 第一行是标题,解 ..
-
7.2 拆分合并 我们已经会用循环函数和 mid 把字符串拆成单个的字符序列,因为这种情况很常用,SPL 提供了 split 函数。s.split()就相当于 len(s).(mid(s,~, ..
-
[链接]7.1 字符串 到现在这止,我们在程序中处理过的数据,除了 output 时有个少量文字外,都是数值或数值构成的序列。其实,计算机还能方便地处理文字,在程序语言中,我们把这些文字称为字 ..
-
6.3 可复用脚本 学到现在,我们都在一个网格里写代码。 这个网格可以被保存成一个扩展名为.splx 的文件,我们称它为一个脚本。 现在我们学会了写自定义函数被重复调用,但是这个函数只能在一个 ..
-
[链接]6.2 递归 * 有了自定义函数就可以写出递归程序了,我们再来看阶乘运算,这是个好例子。 我们知道,n!=(n-1)!*n,也就是说,如果我们知道 (n-1)! 后,就可以再用乘法来计 ..
-
6.1 自定义函数 还是假定没有阶乘函数,现在想计算组合数[图片]。 A B C 1 10 4 2 =1 for A1 >A2=A2*B2 3 =1 for B1 >A3=A3*B ..
-
[链接]5.7 Lambda 语法 * 回顾一下 A.pos(x) 和 A.select(x) 这两个函数,我们说前者不是循环函数,参数 x 中不能用 ~、#这些符号,而后者是循环函数,参数中 ..
-
[链接]5.6 排序相关 为了解决数字黑洞问题,我们已经写了好几种排序代码了。排序确实是很常见的动作,所以 SPL 直接提供了排序函数。 A.sort() 将返回将 A 的成员从小到大排列的序 ..
-
[链接]5.4 迭代函数 * 我们还可以用更基础的迭代函数来实现不用临时变量完成e的计算。 序列 A 的迭代函数 A.iterate@a(x,a) 有两个参数 x 和 a,先不管这里的 @a, ..
-
[链接]5.1 集合运算 现在,我们学会了使用序列,但这个序列看起来就像之前所说的,是一批变量用了同一个名字,我们在操作这些序列成员时仍然是一个个去引用和赋值的。这一章里,我们来学习如何将序列 ..
-
[链接]4.4 理解对象 我们先看一段例子代码: A B 1 =4 =A1 2 =[3,4,12,4,6,9,3,5] =A2 3 >B1=3 =A1 4 >B2(2)=0 =A2 ..
-
4.3 多层序列 序列的成员还可以是序列,这样可以构成多层的序列。比如 [[1,2,3],[2,3,1],[3,1,2]] 就是个合法的序列,其每个成员又是一个序列。 我们来看多层序列的成员如 ..
-
[链接]4.2 序列循环 使用循环,我们可以实现一些针对序列的聚合运算,比如之前的 max/min。 A B C 1 =[3,4,12,4,6,9,3,5] =-999999 =999999 ..
-
4.1 序列 前面我们写过的程序中,输入的原始数据只有不多的几个。循环代码处理的多个数据,也是有某种规律被代码算出来的,不算是代码的原始数据了。实际工作中我们要处理的原始数据常常也是一大批,这 ..
-
[链接]3.2 多层循环 就像 if 和 else 的代码块中还可能再有 if…else 一样,for 的循环体中也还可以再有 for,这种情况我们称为多层循环。 水仙花数是指这样的一个三位数 ..
-
[链接]2.3 注释和跳转 程序代码不一定总是能写对,在没有出现预期结果时常常搞不清原因,这时候就需要对程序进行调试以定位错误。 早期原始的调试方式就是把程序运行的中间结果输出,看看是哪一步不 ..
-
2.2 分支结构 用 if() 函数可以完成一些判断,但有些情况,我们还需要 if 语句。 回顾一下中学学过的二次方程[图片],可以用公式[图片]解出方程,但是要考察其中那个[图片],如果它大 ..