早教吧作业答案频道 -->其他-->
perl按hash值排序并返回名次比如说这样的文件:a0.1b0.3c0.2d0.3e0.4想要排序后得到这样的文件a0.11c0.22b0.33d0.33e0.45也就是说按数字的大小排序,然后还要返回名次,数字大小一样的名次要
题目详情
perl按hash值排序并返回名次
比如说这样的文件:
a 0.1
b 0.3
c 0.2
d 0.3
e 0.4
想要排序后得到这样的文件
a 0.1 1
c 0.2 2
b 0.3 3
d 0.3 3
e 0.4 5
也就是说按数字的大小排序,然后还要返回名次,数字大小一样的名次要保证一样.
其中第一列的字母是唯一的.
比如说这样的文件:
a 0.1
b 0.3
c 0.2
d 0.3
e 0.4
想要排序后得到这样的文件
a 0.1 1
c 0.2 2
b 0.3 3
d 0.3 3
e 0.4 5
也就是说按数字的大小排序,然后还要返回名次,数字大小一样的名次要保证一样.
其中第一列的字母是唯一的.
▼优质解答
答案和解析
#!/bin/env perl
my @data = map {$_->[0]} sort{$a->[1] $b->[1]} map{[ $_, (split)[1] ]} ;
my $line=1;
my $rank=$line;
my $flag=undef;
for (@data)
{
chomp;
if ($flag != (split)[1])
{
$flag = (split)[1];
$rank = $line;
}
print "$_\t$rank\n";
$line++;
}
__DATA__
a 0.1
b 0.3
c 0.2
d 0.3
e 0.4
my @data = map {$_->[0]} sort{$a->[1] $b->[1]} map{[ $_, (split)[1] ]} ;
my $line=1;
my $rank=$line;
my $flag=undef;
for (@data)
{
chomp;
if ($flag != (split)[1])
{
$flag = (split)[1];
$rank = $line;
}
print "$_\t$rank\n";
$line++;
}
__DATA__
a 0.1
b 0.3
c 0.2
d 0.3
e 0.4
看了perl按hash值排序并返回...的网友还看了以下:
几种橡胶的弹性排序分子结构特征,分析四种种橡胶的回弹性好坏,并排出顺序.天然橡胶,丁苯橡胶,顺丁橡 2020-06-04 …
若将连续的自然数1到140按第一排1到7,8到14,第3排15到21,第4排22到28第5排29到 2020-06-11 …
数字1-8按照不同的顺序排列然后随机删除4个相同的数字还能使4组排列顺序完全不同请问如何排列比如1 2020-06-18 …
兔妈妈把10个萝卜分成4份,然后从左往右按1个、2个、3个、4个的顺序排列好,然后对小兔子们说:“ 2020-06-30 …
如果把一个自然数各数位上的数字从最高位到个位依次排出的一串数字,与从个位到最高位依次排出的一串数字 2020-07-20 …
如果把一个自然数各数位上的数字从最高位到个位依次排出的一串数字,与从个位到最高位依次排出的一串数字 2020-07-22 …
兔妈妈把10个萝卜分成4份,然后从左往右按1个、2个、3个、4个的顺序排列好,然后对小兔子们说:“ 2020-07-24 …
线性代数中什么是自然排列,自然排列必须是12345……这样的,还是递增的排列? 2020-11-11 …
什么是自然排列高数中谈一个排列的逆序数时谈到的:假设1…i…j…n为自然排列.其中的自然排列是什么意 2020-11-20 …
perl按hash值排序并返回名次比如说这样的文件:a0.1b0.3c0.2d0.3e0.4想要排序 2020-12-05 …