Re: [問題] 將hash key相對稱的value相加
※ 引述《adu (^_^)》之銘言:
: 請問版大們
: 現在我有一個hash長這個樣子
: LM: 0.166666666666667
: MM: 0.333333333333333
: LL: 0.333333333333333
: ML: 0.166666666666667
: 如果要if(key==reverse key){則value相加}該怎麼做?
: 這個例子當中就是因為LM==reverse ML
: 所以結果會變成
: MM: 0.333333333333333
: LL: 0.333333333333333
: ML: 0.333333333333333 (ML或是LM都不拘)
: 謝謝版大
#!/usr/bin/perl
$DATA{(/^(.+?):/)[0]}=(/:\s*(.+?)$/)[0] for(<DATA>);
print "\n======= DATA =======\n";
print "$_ $DATA{$_}\n" for(keys %DATA);
foreach $p (keys %DATA) {
$q=reverse $p;
if($p ne $q and defined $DATA{$q}) {
$DATA{$p}=$DATA{$p}+$DATA{$q};
delete $DATA{$q};
}
}
print "\n====== RESULT ======\n";
print "$_ $DATA{$_}\n" for(keys %DATA);
__DATA__
LM: 0.166666666666667
MM: 0.333333333333333
LL: 0.333333333333333
ML: 0.166666666666667
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.192.170.66
推
05/26 13:41, , 1F
05/26 13:41, 1F
→
05/26 18:38, , 2F
05/26 18:38, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Perl 近期熱門文章
PTT數位生活區 即時熱門文章
10
113