如果我在 Python中有一个数组myarray,我可以使用切片符号
myarray[0::2]

以仅选择均匀索引的元素.例如:

>>> ar = [ "zero","one","two","three","four","five","six" ]
>>> ar [ 0 : : 2 ]
['zero','two','four','six']

在Perl有类似的设施吗?

谢谢.

解决方法

有数组切片:
my @slice = @array[1,42,23,0];

有一种方式来生成$x和$y之间的列表:

my @list = $x .. $y

有一种从列表中构建新列表的方法:

my @new = map { $_ * 2 } @list;

还有一种方法来获取数组的长度:

my $len = $#array;

放在一起:

my @even_indexed_elements = @array[map { $_ * 2 } 0 .. int($#array / 2)];

被授予,不如python等效的那么好,但它做同样的工作,你当然可以把它放在一个子程序中,如果你使用它很多,并想保存自己的一些写作.

还有一些可能的事情,允许在List :: AllUtils中以更自然的方式写这个.

是否有一个紧凑的Perl操作来从数组中切换备用元素?的更多相关文章

  1. swift基础教程——数组和字典

    /*复制,再编辑,自己留着看*/Swift提供两种集合类型来存储集合,数组和字典。//看起来字典非常像map在Swift中,数组和字典的键和值都必须明确它的类型。这意味这数组和字典不会插入一个错误的类型的值,以致于出错。这也意味着当你在数组和字典中取回数值的时候能够确定它的类型。所以Swift数组是类型安全的,因为它一直都确定它自身所能包含的值。

  2. Swift高阶函数:Map,Filter,Reduce等-Part 1

    希望我们在Swift中不再需要像fuckingblocksyntax中所描述的语法。数组操作Swift的标准数组支持三个高阶函数:map,filter和reduce。SwiftStringAppleReferenceFilterfilter用于选择数组元素中满足某种条件的元素。Swift中filter在Array类中的定义为:filter->T[]以返回true或false的函数includeElement作为参数,对原数组元素调用includeElement时,只有返回true的元素会通过筛选对数组筛选

  3. 深入探究Swift数组背后的协议、方法、拓展

    书的质量非常高,讲解非常细致。但不可避免的导致篇幅有点长,有些前面的知识点看到后面无法串联起来。同时由于偏重于讲解,所以个人感觉总结还不够,比如我们可以考虑这几个问题:数组类型、集合、序列、生成器、元素、下标,这些类型(协议)各自的作用。数组是如何利用上面这些类实现各种方法的。map、reduce、filter等方法的作用是什么,他们是怎么实现的。

  4. 数组 – Perl中有什么神奇的数组?

    在Perldocumentationforreverse中,我发现:“请注意,将数组反转到自身(如@a=reverse@a)将尽可能保留不存在的元素;即对于非魔法数组或具有EXISTS和DELETE方法的绑定数组.什么属性区分神奇和非魔法阵列?解决方法一个神奇的阵列是一个执行它的操作不仅仅是改变内容.只有内置的魔术阵列是@ISA,而且这是非常不明显的.正如句子所暗示的,魔术阵列主要是一个绑定的阵列

  5. Perl:特殊数组@_不是真的别名吗?

    传递给函数的所有参数都存在的特殊数组@_实际上是传递参数的别名.因此,我们直接对这个特殊数组@_进行的任何改变也将在主要内容中反映出来.这很清楚对于上述程序,我预计@arr和@_的引用指向相同的位置,因为它是一个别名.但是不是这样.运行以上:如果他们指向2个不同的位置,@_中的更改如何在@arr中反映?

  6. 可以在Perl中初始化一个给定大小的数组吗?

    我在代码中有一个部分,我知道我将需要一个数组,我知道数组中需要有多少个元素.这段代码将重复很多,所以我可以通过首先将该数组初始化为我所知道的大小,然后填充它,而不是仅仅推送项目.也就是说,我似乎没有找到任何优雅的方式将数组初始化为给定的大小,我不知道为什么.我知道我可以做:我的@array$array[49]=0;得到一个50项目数组,但这看起来真的很丑,我觉得好像必须有一个更好的方法.想法?

  7. 有没有办法在Perl的一个匿名数组的最后获取一个切片?

    所以这一直让我在过去的半个小时里去乞丐.我有没有办法把一个数组切片到一个匿名数组的末尾?我试过了:[1..$#_]我试过:[1..-1]但更严重的是,这些都不工作.我真的不想有一个额外的临时变量实例化到中间数组.而我真的不想使用一个丑陋和不可读的一个班轮.真的没有直接的方法吗?

  8. 如何将数组转换为Perl中的散列?

    我有一个数组,并尝试将数组内容转换为具有键和值的哈希值.索引0是一个键,索引1是一个值,索引2是一个键,索引3是一个值等.但它并没有产生预期的结果.代码如下:产出的产量不正确:在输出中,您可以看到散列仅由一部分组成,数组的另一部分不会在散列中创建.谁能帮忙?解决方法没有比它更多:

  9. Grep在perl数组中查找项目

    每当我输入代码总是告诉我它存在的东西.但我知道一些输入不存在.你能帮助我们什么是错的?解决方法您给grep的第一个参数需要评估为true或false来指示是否有匹配.所以应该是:如果您需要匹配很多不同的值,那么您也可以考虑将数组数据放入散列中,因为哈希允许您有效地执行此操作,而无需遍历列表.

  10. 是否有一个紧凑的Perl操作来从数组中切换备用元素?

    如果我在Python中有一个数组myarray,我可以使用切片符号以仅选择均匀索引的元素.例如:在Perl有类似的设施吗?谢谢.解决方法有数组切片:有一种方式来生成$x和$y之间的列表:有一种从列表中构建新列表的方法:还有一种方法来获取数组的长度:放在一起:被授予,不如python等效的那么好,但它做同样的工作,你当然可以把它放在一个子程序中,如果你使用它很多,并想保存自己的一些写作.还有一些可能的事情,允许在List::AllUtils中以更自然的方式写这个.

随机推荐

  1. 数组 – Perl中有什么神奇的数组?

    在Perldocumentationforreverse中,我发现:“请注意,将数组反转到自身(如@a=reverse@a)将尽可能保留不存在的元素;即对于非魔法数组或具有EXISTS和DELETE方法的绑定数组.什么属性区分神奇和非魔法阵列?解决方法一个神奇的阵列是一个执行它的操作不仅仅是改变内容.只有内置的魔术阵列是@ISA,而且这是非常不明显的.正如句子所暗示的,魔术阵列主要是一个绑定的阵列

  2. perl – 使用“isa”方法的最佳方式?

    什么是“最好的”使用方式“isa()”可靠?解决方法Scalar::Util实现明确更好.它避免了eval{}的开销,它总是导致设置一个附加变量.Scalar::Util实现更容易阅读.如果eval也失败了,我相信发生的是你在树之前向后走到eval之前的状态–这是如何实现复位状态.这带来了额外的故障开销.基准根本不是一个对象对象传递isa检查对象出现故障现象检查测试代码:我使用这是为i486-linux-gnu-thread-multi建立的perl,v5.10.1(*),以及Scalar::Util,1

  3. 在CORE :: GLOBAL中哪些Perl内置函数不能被覆盖?

    解决方法toke.c中任何值为负的值都可以被覆盖;所有其他人可能不会.你可以看源码here.例如,我们来看看第10,396行的waitpid:由于waitpid为负数,因此可能会被覆盖.grep怎么样?这是积极的,所以不能被覆盖.这意味着以下关键字不能被覆盖:chop,defined,delete,do,dump,each,else,elsif,eval,exists,for,foreach,format,glob,goto,grep,if,keys,last,local,m,map,my,next,no

  4. 如何在Perl中打印由换行符分隔的列表元素?

    什么是最简单的打印所有列表的元素以Perl中的换行符分隔的元素?解决方法在Perl5.10中:其他方式:或:或者怎么样?

  5. 使用Perl如何获取文件大小(以兆字节为单位)?

    我想以磁盘的形式获取磁盘上的文件大小.使用-s运算符给出了以字节为单位的大小,但是我将假设,然后将其除以魔术数字是一个坏主意:我应该使用只读变量来定义1024,还是有一种编程方式来获取一千字节的字节数?

  6. perl – 如何测试/分类CPAN模块的utf8正确性

    例如:File::Slurp,如果你将读取该文件您将根据命令行开关获得不同的结果,并且perl-CSDA将无法正常工作.伤心.(是的,我知道比Encode::decode(“utf8”,read_file($file,binmode=>’:raw’));将帮助,但是SAD.我的问题:>在这里任何首选方式,如何测试/分类什么CPAN模块是utf8安全/准备/正确?>这里是像Perl::Criticforutf8这样的东西–什么将检查模块源可能的utf8不正确?总结以上是DEVMAX为你收集整理的perl–如

  7. 如何删除Perl字符串中的空格?

    如果我声明一个值为’3’的变量$myString.是否有任何功能来删除返回值的空格.有点像SomeFun然后返回’3′.输出:你可以注意到’vid’=>‘0’,上面的代码从theanswer.我正在研究它.总结以上是DEVMAX为你收集整理的如何删除Perl字符串中的空格?如果觉得DEVMAX网站内容还不错,欢迎将DEVMAX网站推荐给好友。

  8. 如何在mod_perl2下运行Devel :: Cover?

    Unfortunately,Devel::Coverdoesnotyetworkwiththreads.它也不适用于prefork.在startup.pl中使用,Devel::Cover问题perl5.8.9,Apache2.2.13.我的操作系统是FreeBSD,如果重要.同样的问题是reportedforwin32.更新:PerlTrace全部输出解决方法邪恶之源似乎是Apache::DBI.

  9. 如何使用Perl中的C类?

    我有一套用C写的课.从Perl脚本中调用它们的最佳方法是什么?

  10. perl – 在Emacs中以双模式更好的缩进

    我正在使用Emacs来修改Perl和Verilog交织的代码.我正在使用two-mode-mode在两者之间切换,这样可以预期.问题是perl代码与//一行一行地表示;如下图所示:而双模式则认识到它是Perl,它是逐行的,所以缩进等在线上无意义.我想做的是使Perl代码像往常一样格式化,但忽略//;字符.有什么想法吗?我刚刚开始偷看模式文件,它们是可以理解的复杂的,所以任何提示都不会感激!

返回
顶部