加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

第 5 章: Perl 6 列表

发布时间:2020-12-15 23:46:19 所属栏目:大数据 来源:网络整理
导读:第 5 章: Perl 6 列表 my @list = (1,2,3)1 2 3 end 获取最后一个元素的位置: @list.end2 keys 获取每个元素的位置索引: @list.keys0 1 2 values 获取每个元素的值:这个功能似乎针对散列有用 @list.values1 2 3 @list.kv0 1 1 2 2 3 @list.kv.perl((0,1)

第 5 章: Perl 6 列表

> my @list = (1,2,3)
1 2 3

end 获取最后一个元素的位置:

> @list.end
2

keys 获取每个元素的位置索引:

> @list.keys
0 1 2

values 获取每个元素的值:这个功能似乎针对散列有用

> @list.values
1 2 3

> @list.kv
0 1 1 2 2 3

> @list.kv.perl
((0,1),(1,2),(2,3)).list

> @list.pairs
0 => 1 1 => 2 2 => 3

> @list.pairs.perl
(0 => 1,1 => 2,2 => 3).list

join,将所有的元素合并起来:

> @list.join.perl
"123"

map 可以针对列表的每个元素进行运算:

> @list.map: { .WHAT.perl }
Int Int Int
> @list.map: { .WHAT }
(Int) (Int) (Int)
> @list.map: {.Str.chars}
1 1 1

grep 针对列表的每个元素进行一个规则的筛选:

> @list.grep: Int
1 2 3
> @list.grep: { .Str.chars > 0 }
1 2 3

grep-index 获取的是元素的索引:

> @list.grep-index: { .Str.chars > 0 }
0 1 2

first 用于获取满足条件的第一个值:

> @list.first: * > 0
1
> @list.first: Int
1

first-index 用户获取第一个满足条件的值的索引:

> @list.first-index: Int
0

Bool 返回非空数组为 True,否则为 False:

> @list.Bool
True
> ().Bool
False

Numeric 和 elems 的作用一样,返回数组的元素个数:

> @list.Numeric
3

pick 用于随机的从数组中抽取数据:

> my @array = <a b c d e>
a b c d e
> @array.pick
e
> @array.pick(3)
e c b
> @array.pick: *
a c b d e

permutations 获取元素的所有排列组合:

> say .join('|') for <a b c>.permutations
a|b|c
a|c|b
b|a|c
b|c|a
c|a|b
c|b|a

combinations 用于生成不重复的数组:

> .say for combinations(4,2)
0 1
0 2
0 3
1 2
1 3
2 3

reverse 用于倒序数组:

> <hello world>.reverse
world hello
> reverse ^10
9 8 7 6 5 4 3 2 1 0

rotate 用于翻转数组:

> <a b c d e>.rotate(2)
c d e a b
> <a b c d e>.rotate(-1)
e a b c d

sort 默认的排序是按照 ascii 值来进行从小到大的排列:

> <c d e a b>.sort
a b c d e
> <1 2 3 4 5 10>.sort
1 10 2 3 4 5

sort 也可以设置排序的规则,字符串对比和数字对比的比较操作符不同:

> <1 2 3 4 5 10>.sort: { $^b leg $^a }
5 4 3 2 10 1
> <1 2 3 4 5 10>.sort: { $^b > $^a }
10 5 4 3 2 1
> (3,-4,7,-1,0).sort: { $^b leg $^a }
7 3 2 0 -4 -1
> (3,0).sort: { $^b > $^a }
7 3 2 0 -1 -4

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读