当前位置:  开发笔记 > 编程语言 > 正文

如何在Perl 6的列表中找到最大值的索引?

如何解决《如何在Perl6的列表中找到最大值的索引?》经验,为你挑选了1个好方法。

在Perl 6中找到列表中的最大值很容易:

> my @list = 1,4,9,7,3;
> say @list.max;
9

但是如果我想找到最大条目的索引,似乎没有一种优雅的方法来做到这一点.

> say (^@list).sort({ -@list[$_] })[0];
2
> say @list.pairs.sort(*.value).tail.key;
2
> say @list.first(@list.max, :k);
2

这些都是有效的,但它们并不优雅,更不用说高效了.

有一个更好的方法吗?

如果max:k,:v:kv选项,如例如,那将是很好的first.当然,也有可能不会一个独特的指数(例如,在的情况下(1,4,9,7,9).max,但话又说回来,有可能不是一个独特的价值之一:

> dd (1, 2.0, 2.0e0, 2).max;
2.0
> say .max(*.chars);
quick

max已经检索到第一个最大值,因此用(或)返回第一个索引是完全合理的.:k:kv



1> Christoph..:

您可以使用

@list.maxpairs

获得所有索引和最大值对的列表或

@list.pairs.max(*.value).key

获得一个索引.

据我所知maxpairs,提供转换的能力max仍然没有记录.


谢谢,两个不错的选择.(事实上​​,两者都没有记录.)
推荐阅读
手机用户2402852307
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有