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

这篇具有很好参考价值的文章主要介绍了erlang (Lists 操作模块)学习笔记(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

keysearch

42> lists:keysearch(1, 1, [{1,hello},{2,value}]).
{value,{1,hello}}
43> lists:keysearch(3, 1, [{1,hello},{2,value}]).
false

在元组 TupleList 列表中搜索 第 N个元素比较等于 Key 的元组。 如果找到这样的元组,则返回 {value, Tuple}, 否则为 false。 

keysort 

44> lists:keysort(1, [{2,hello},{3,value},{1,key}]).     
[{1,key},{2,hello},{3,value}]
45> lists:keysort(2, [{2,hello},{3,value},{1,key}]).
[{2,hello},{1,key},{3,value}]

 返回一个列表,其中包含列表 TupleList1 的排序元素。排序是在元组的第 N个元素上执行的。排序是稳定的。

 keystore

46> lists:keystore(1,1, [{2,hello},{3,value},{1,key}],{4,none}).
[{2,hello},{3,value},{4,none}]
47> lists:keystore(5,1, [{2,hello},{3,value},{1,key}],{4,none}).
[{2,hello},{3,value},{1,key},{4,none}]

 返回 TupleList1 的副本,其中第一个 出现一个元组 T,其第 N个元素 如果存在这样的元组 T,则将等于 Key 替换为 NewTuple。 如果没有这样的元组 T,则 TupleList1 的副本,其中 [NewTuple] 已附加到末尾是 返回。

 keytake

48> lists:keytake(1,1, [{2,hello},{3,value},{1,key}]).          
{value,{1,key},[{2,hello},{3,value}]}
49> lists:keytake(4,1, [{2,hello},{3,value},{1,key}]).
false

 在元组 TupleList1 列表中搜索 第 N个元素比较等于 Key 的元组。返回 {value, Tuple, 如果找到这样的元组,则为 TupleList2},否则为 false。TupleList2 是一个副本 的 TupleList1,其中第一次出现的元组已被删除。

 last

50> lists:last([{2,hello},{3,value},{1,key}]).        
{1,key}

 返回 List 中的最后一个元素。

 map

51> lists:map(fun(X)->X+2 end,[1,2,3,4]).
[3,4,5,6]

 获取从 A s 到 Bs 的函数,以及 As 和 通过应用生成 B的列表 列表中每个元素的函数。此功能是 用于获取返回值。评估顺序取决于 实现。

 mapfoldl 和 mapfoldr

52> lists:mapfoldl(fun(X, Sum) -> {2*X, X+Sum} end,0, [1,2,3,4,5]).
{[2,4,6,8,10],15}
53> lists:mapfoldr(fun(X, Sum) -> {2*X, X+Sum} end,0, [1,2,3,4,5]).
{[2,4,6,8,10],15}

 将 map/2和 foldl/3(或foldr/3) 的操作合并到一个通道中。

  max

54> lists:max([1,2,3,4,5]).                                        
5

 返回 List 的第一个元素,该元素比较 大于或等于 List 的所有其他元素。

member 

55> lists:member(2,[1,2,3,4,5]).
true
56> lists:member(6,[1,2,3,4,5]).
false

 如果 Elem 与某个元素匹配,则返回 true 的 List,否则为 false。

 merge3

60> lists:merge3([2,4],[1,2,3,4,5],[3,7]).
[1,2,2,3,3,4,4,5,7]

 返回通过合并 List1、List2 和 List3 形成的排序列表。在计算此值之前,必须对 List1、List2 和 List3 的所有内容进行排序 功能。当两个元素比较相等时,List1 中的元素,如果有这样的元素, 在另一个元素之前选取,否则该元素 from List2 在 List3 中的元素之前被选中。

min 

61> lists:min([1,2,3,4,5]).               
1

 返回 List 的第一个元素,该元素比较 小于或等于 List 的所有其他元素。

nth 

62> lists:nth(3,[1,2,3,4,5]).
3
63> lists:nth(3, [a, b, c, d, e]).
c

 返回 List 的第 N个元素。

 nthtail

64> lists:nthtail(3, [a, b, c, d, e]).
[d,e]
65> tl(tl(tl([a, b, c, d, e]))).
[d,e]
66> lists:nthtail(0, [a, b, c, d, e]).
[a,b,c,d,e]
67> lists:nthtail(5, [a, b, c, d, e]).
[]

 返回 List 的第 N个尾部, 即 List 的子列表从 N+1 开始,一直持续到列表末尾。

 partition

68>  lists:partition(fun(A) -> A rem 2 == 1 end, [1,2,3,4,5,6,7]).
{[1,3,5,7],[2,4,6]}
69> lists:partition(fun(A) -> is_atom(A) end, [a,b,1,c,d,2,3,4,e]).
{[a,b,c,d,e],[1,2,3,4]}

 Partitions List 分为两个列表,其中第一个列表 list 包含 Pred(Elem) 返回 true 的所有元素, 第二个列表包含 Pred(Elem) 返回 false 的所有元素。

prefix 

71> lists:prefix([1,2,3], [1,2,3,4,5]). 
true
72> lists:prefix([1,4,3], [1,2,3,4,5]). 
false

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

 reverse

73> lists:reverse([1,2,3,4,5]).                                    
[5,4,3,2,1]

 返回一个列表,其中包含 List1 中的元素,顺序相反。

74> lists:reverse([1,2,3,4,5],[6,7,8]). 
[5,4,3,2,1,6,7,8]

 返回一个列表,其中包含 List1 中的元素,顺序相反,并附加了 tailTail。

search 

75> lists:search(fun(X)->X>3 end,[1,2,3,4]). 
{value,4}
76> lists:search(fun(X)->X>3 end,[1,2,3]).   
false

 如果列表中有一个 Value,使得 Pred(Value) 返回 true,则为第一个这样的 Value 返回 {value, Value}, 否则返回 false。Pred 函数必须返回 布尔值。

seq 

77> lists:seq(1, 10).
[1,2,3,4,5,6,7,8,9,10]
78> lists:seq(1, 20, 3).
[1,4,7,10,13,16,19]
79> lists:seq(1, 0, 1). 
[]
80> lists:seq(10, 6, 4).
[]
81> lists:seq(1, 1, 0). 
[1]

 返回以 From 开头的整数序列,其中包含 将 Incr 添加到前一个元素,直到到达或传递 To(在后一种情况下,To 不是 序列)。Incr 默认为 1。

sort 

82> lists:sort([1, 4, 2,5,7,6]).
[1,2,4,5,6,7]

 返回一个列表,其中包含 List1 的已排序元素。

 split

83> lists:split(3,[1, 4, 2,5,7,6]).
{[1,4,2],[5,7,6]}

 将 List1 拆分为 List2 和 List3。List2 包含 前 N 个元素和 List3 剩余的元素(第 N个尾巴)。

 splitwith

84> lists:splitwith(fun(A) -> A rem 2 == 1 end, [1,2,3,4,5,6,7]).
{[1],[2,3,4,5,6,7]}
85> lists:splitwith(fun(A) -> is_atom(A) end, [a,b,1,c,d,2,3,4,e]).
{[a,b],[1,c,d,2,3,4,e]}

 根据 Pred 将 List 划分为两个列表。splitwith/2 的行为就好像是 定义如下:

 sublist

86> lists:sublist([1,2,3,4], 2, 2).
[2,3]
87> lists:sublist([1,2,3,4], 2).   
[1,2]
88> lists:sublist([1,2,3,4], 2, 5).
[2,3,4]
89> lists:sublist([1,2,3,4], 5, 2).
[]

 返回 List1 的子列表,从 位置 1 和(最大)Len 元素。是的 Len 不会出现超过 list,在这种情况下,将返回整个列表。

返回 List1 的子列表,该子列表从 Start 开始,并具有(最大)Len 元素。Start+Len 超过 列表。

subtract 

90> lists:subtract("123212", "212").
"312"

 返回一个新列表 List3,它是 List1 的副本,并遵循以下过程: 对于 List2 中的每个元素,它第一次出现 在 List1 中被删除文章来源地址https://www.toymoban.com/news/detail-819844.html

到了这里,关于erlang (Lists 操作模块)学习笔记(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 分布式Erlang/OTP(学习笔记)(一)

    假设你在机器A和机器B上各跑着一个Simple Cache应用的实例。要是在机器A的缓存上插人一个键/值对之后,从机器B上也可以访问,那可就好了。显然,要达到这个目的,机器A必须以某种方式将相关信息告知给机器B。传递该信息的方式有很多,有些方式简单,有些方式复杂。但无

    2024年01月19日
    浏览(61)
  • 【Python_Selenium学习笔记(四)】基于Selenium模块实现键盘操作

    在 Selenium 模块中,提供了一个 Keys 类,来处理键盘操作; 在 Selenium 模块中,使用 send_keys() 方法,来模拟键盘输入, 此篇文章主要介绍如何使用 Keys 类 和 send_keys() 方法 实现 模拟键盘操作,并以具体的示例进行展示。 Keys类键盘事件 实现功能 Keys.BACK_SPACE 删除键 Keys.SPACE 空

    2023年04月09日
    浏览(105)
  • 【Python_Selenium学习笔记(五)】基于Selenium模块实现鼠标操作

    为了模拟鼠标操作,Selenium 模块提供了 Actionchains 类,可以模仿人的几乎任何鼠标行为操作; 在此篇文章主要介绍 Actionchains类 的常用方法,使用流程,并以具体的示例进行展示。 perform():执行ActionChains中存储的行为; context_click(on_element=None):点击鼠标右键; double_click(on_

    2024年02月13日
    浏览(44)
  • Chapter 9: Lists | Python for Everybody 讲义笔记_En

    Exploring Data Using Python 3 Dr. Charles R. Severance Python for Everybody 零基础程序设计(Python 入门) This course aims to teach everyone the basics of programming computers using Python. 本课程旨在向所有人传授使用 Python 进行计算机编程的基础知识。 We cover the basics of how one constructs a program from a series of si

    2024年02月15日
    浏览(37)
  • Arduino模块学习笔记(一)—GPS模块的使用

    Arduino UNO开发板 Arduino IDE环境 数据线 NEO-6M GPS模块(+配套的陶瓷天线 可选) 1.GPS模块(在室内时,一般获取不到位置信息) 常见的GPS模块的参数都差不多,除了有些个别输出格式不同。 ● 接口:RS232 TTL ● 电源:3.3V至5V均可(内置降压模块) ● 默认波特率:9600 bps(有些可

    2023年04月16日
    浏览(32)
  • node自主学习——fs文件操作模块

    目录 读文件 读文件是否成功的判定 写文件 写文件是否成功的判定 备注:VsCode、node v18.17.0

    2024年02月16日
    浏览(58)
  • 【Apollo学习笔记】—— Routing模块

    Apollo的routing模块读取高精地图原始信息,用于根据输入 RoutingRequest 信息在 base_map 中选取匹配最近的点作为导航轨迹的起点和终点,读取依据 base_map 生成的 routing_map 作为 topo_graph ,然后通过Astar算法在拓扑图中搜索连接起始点的最优路径 RoutingResponse ,作为输出发送出去。

    2024年02月15日
    浏览(41)
  • 学习笔记5-MPU6050模块

    MPU-60X0是世界上第一款集成 6 轴MotionTracking设备。它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器 DMP( DigitalMotion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其 I2C或SPI接口输出一个9轴的信号( SPI接口仅

    2023年04月25日
    浏览(53)
  • Node学习笔记之HTTP 模块

    回顾:什么是客户端、什么是服务器? 在网络节点中,负责消费资源的电脑,叫做 客户端 ;负责对外提供网络资源的电脑,叫做 服务器 。 http 模块是 Node.js 官方提供的、用来创建 web 服务器的模块。通过 http 模块提供的 http.createServer() 方法,就能方便的把一台普通的电脑,

    2024年02月08日
    浏览(57)
  • Verilog 学习笔记(一)模块例化

        1.单个模块的例化 verilog中模块的例化有两种方式,一种是基于端口位置来例化模块,另一种则是根据端口名称来例化。首先介绍第一种基于端口位置来例化。在此之前,我们先给出一个简单的模块如下:  上图中的mod_a模块声明如下: module mod_a ( output, output, input, input,

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包