图书 •
828 引用 •
203 回帖 •
3 关注
博客
关注
-
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.3 日期与时间 与时间相关的处理和计算也很常见,SPL 有三种数据类型:日期、时间、日期时间。 日期数据就只有日期信息,没有时间信息;时间数据只有时间信息,没有对应的日期信息;而日 ..
-
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.5 定位选出 从序列中取出子序列(也就是集合取子集)是常见运算,我们已经学过用 to 函数和数列根据成员的位置取出子序列。 有时候我们希望从序列尾部按倒数次序取成员,当然可以用序列长度计算 ..
-
[链接]5.4 迭代函数 * 我们还可以用更基础的迭代函数来实现不用临时变量完成e的计算。 序列 A 的迭代函数 A.iterate@a(x,a) 有两个参数 x 和 a,先不管这里的 @a, ..
-
[链接]5.3 循环函数进阶 SPL 在循环函数中提供了充当循环变量的 ~ 符号,可以简化许多原本要用循环语句来写的代码。但我们知道,针对序列的循环语句还提供了获取循环序号的语法(在循环变量前 ..
-
5.2 循环函数 前面我们用循环语句完成针对序列成员的求和、最大 / 最小值运算,但循环语句很麻烦,要先设置初始值再一步步计算。SPL 考虑到这一点,提供了一些针对序列的常用函数。 A B 1 ..
-
[链接]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 序列 前面我们写过的程序中,输入的原始数据只有不多的几个。循环代码处理的多个数据,也是有某种规律被代码算出来的,不算是代码的原始数据了。实际工作中我们要处理的原始数据常常也是一大批,这 ..