erlang (Lists 操作模块)学习笔记(三)

suffix

Erlang 复制代码
1> lists:suffix([1,2,3],[1,2,3,4]).
false
2> lists:suffix([2,3,4],[1,2,3,4]).  
true

如果 List1 是 List2 的后缀,则返回 true,否则返回 false。

sum

Erlang 复制代码
3> lists:sum([1,2,3,4]).           
10

返回 List 中元素的总和。

takewhile

Erlang 复制代码
4> lists:takewhile(fun(X)->X<3 end,[1,2,3,4]).
[1,2]
5> lists:takewhile(fun(X)->X<3 end,[1,2,3,1,2,3,4]).
[1,2]
6> lists:takewhile(fun(X)->X<3 end,[2,3,1,2,3,4]).  
[2]

从 List1 中获取元素 Elem,而 Pred(Elem) 返回 true,即 是,该函数返回其列表中最长的前缀 所有元素都满足谓语。Pred 函数必须 返回一个布尔值。

ukeymerge

Erlang 复制代码
9> lists:ukeymerge(1,[{1,2},{2,3,4}],[{1,2,3}]).
[{1,2},{2,3,4}]
10> lists:ukeymerge(1,[{4,2},{2,3,4}],[{1,2,3}]).
[{1,2,3},{4,2},{2,3,4}]

返回通过合并 TupleList1 和 TupleList2 形成的排序列表。合并是在每个元组的第 N个元素上执行的。在计算此函数之前,必须对 TupleList1 和 TupleList2 进行键排序,没有重复项。 当两个元组比较相等时,将选取 TupleList1 中的元组,并将 删除 TupleList2 中的一个。

ukeysort

Erlang 复制代码
12> lists:ukeysort(1,[{2,2},{2,3,4}]).          
[{2,2}]

返回一个列表,其中包含列表 TupleList1 的排序元素,其中除第一个元组外的所有元素 删除了比较相等的元组。排序是 在元组的第 N个元素上执行。

umerge

Erlang 复制代码
13> lists:umerge([1,2,3,4],[5,6,7,8]).          
[1,2,3,4,5,6,7,8]
14> lists:umerge([1,2,3,4],[4,5,6,7,8]).
[1,2,3,4,5,6,7,8]

返回通过合并所有子列表形成的排序列表 的 ListOfLists。所有子列表必须排序,并且 在计算此函数之前不包含重复项。 当两个元素比较相等时,子列表中的元素 在ListOfLists中最低的位置是 已选择,另一个将被删除。

umerge3

Erlang 复制代码
15> lists:umerge3([1,2,3,4],[4,5,6,7,8],[7,8,9,0]).
[1,2,3,4,5,6,7,8,9,0]

返回通过合并 List1、List2 和 List3 形成的排序列表。所有 List1、List2 和 List3 都必须排序,并且不包含任何内容 在计算此函数之前进行重复。当两个 元素比较相等,List1 中的元素是 如果存在这样的元素,则选择,否则从 List2 中选择元素,删除另一个元素。

unzip3

Erlang 复制代码
17> lists:unzip3([{1,q,c},{2,a,d}]).    
{[1,2],[q,a],[c,d]}

将一个三元组的列表"解压缩"为三个列表,其中 第一个列表包含每个元组的第一个元素, 第二个列表包含每个元组的第二个元素,以及 第三个列表包含每个元组的第三个元素。

usort

Erlang 复制代码
19> lists:usort([1,2,3,4,4,5,1]).
[1,2,3,4,5]

返回一个列表,其中包含 List1 的排序元素,其中除 删除了比较相等的元素。

zip

Erlang 复制代码
20> lists:zip([1,2,3],[a,b,c]).  
[{1,a},{2,b},{3,c}]

将两个列表"压缩"成一个双元组列表, 其中,每个元组的第一个元素取自第一个元组 列表,第二个元素取自对应的 元素。

zip3

Erlang 复制代码
23> lists:zip3([1,2,3],[a,b,c],[q,w,e]).
[{1,a,q},{2,b,w},{3,c,e}]

"Zips"三个列表合并为一个列表 三元组,其中每个元组的第一个元素被取 从第一个列表中,第二个元素取自 第二个列表中的相应元素,以及第三个 元素取自第三个列表中的相应元素。

zipwith

Erlang 复制代码
24> lists:zipwith(fun(X, Y) -> X+Y end, [1,2,3], [4,5,6]).
[5,7,9]

将两个列表的元素合并为一个列表。 对于列表元素的每对 X、Y 从这两个列表中,结果列表中的元素是 Combine(X, Y)。

zipwith3

Erlang 复制代码
25>  lists:zipwith3(fun(X, Y, Z) -> X+Y+Z end, [1,2,3], [4,5,6], [7,8,9]).
[12,15,18]
26> lists:zipwith3(fun(X, Y, Z) -> [X,Y,Z] end, [a,b,c], [x,y,z], [1,2,3]).
[[a,x,1],[b,y,2],[c,z,3]] 

将三个列表的元素合并为一个 列表。对于每个三重 X、Y、 Z 来自三个列表的列表元素,元素 在结果列表中是 Combine(X, Y, Z)。

相关推荐
编程零零七2 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
北岛寒沫3 小时前
JavaScript(JS)学习笔记 1(简单介绍 注释和输入输出语句 变量 数据类型 运算符 流程控制 数组)
javascript·笔记·学习
everyStudy3 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
(⊙o⊙)~哦4 小时前
JavaScript substring() 方法
前端
无心使然云中漫步5 小时前
GIS OGC之WMTS地图服务,通过Capabilities XML描述文档,获取matrixIds,origin,计算resolutions
前端·javascript
Bug缔造者5 小时前
Element-ui el-table 全局表格排序
前端·javascript·vue.js
xnian_5 小时前
解决ruoyi-vue-pro-master框架引入报错,启动报错问题
前端·javascript·vue.js
麒麟而非淇淋6 小时前
AJAX 入门 day1
前端·javascript·ajax
2401_858120536 小时前
深入理解MATLAB中的事件处理机制
前端·javascript·matlab
阿树梢6 小时前
【Vue】VueRouter路由
前端·javascript·vue.js