在 Perl 中,如何使用第一个冒号 (:) 之前出现的数字对记录进行排序?
我在 Perl 中有以下数据序列:
143:0.0209090909090909
270:0.0909090909090909
32:0.0779090909090909
326:0.3009090909090909
请问,如何根据冒号之前的数字对它们进行排序,以将其作为我的输出?
32:0.0779090909090909
143:0.0209090909090909
270:0.0909090909090909
326:0.3009090909090909
I have the following sequence of data in Perl:
143:0.0209090909090909
270:0.0909090909090909
32:0.0779090909090909
326:0.3009090909090909
Please, how can I sort them based on the numbers before the colon, to get this as my output?
32:0.0779090909090909
143:0.0209090909090909
270:0.0909090909090909
326:0.3009090909090909
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
那里有冒号并不重要。
Perl 将字符串转换为数字的规则
只会做正确的事:
It does not matter that there are colons there.
Perl's rules for converting strings to numbers
will just do The Right Thing:
可以使用内置的
sort
函数:程序
输出
The built-in
sort
function can be used:Program
Output
类似于:
$a1 和 $b1 将是每个排序输入的第一个元素,在冒号字符上分割。
Something along the lines of:
$a1 and $b1 will be the first element of each of the sorting inputs, split on the colon character.
我会简单地使用
否则:
I'd simply use
Otherwise:
什么,还没有施瓦茨变换吗?
输出:
What, no Schwhartzian transform yet?
Output:
考虑到多样性,我认为一些基准可能是合适的。请注意,在相信这些数字之前,请仔细检查基准测试代码:我匆忙编写了脚本。
结果
Given the variety, I figured some benchmarks might be appropriate. Note, please double-check the benchmarking code before trusting these numbers: I whipped the script up in a hurry.
Results