Python 计算列中字符串的总数
我想计算多个文件中的唯一行数: f1.txtPython 计算列中字符串的总数,python,perl,awk,Python,Perl,Awk,我想计算多个文件中的唯一行数: f1.txt 2039-177 GRAPE 2039-177 GRAPE 2039-176 GRAPE 2039-176 GRAPE 234-450 APPLE 690-346 MANGO 690-346 MANGO 347-348 GRAPE 4350-350 MANGO Total no:of grapes - 3 Total no:of mangoes - 2 Total no:of apples - 1 f2.txt 2039-177 GRAP
2039-177 GRAPE
2039-177 GRAPE
2039-176 GRAPE
2039-176 GRAPE
234-450 APPLE
690-346 MANGO
690-346 MANGO
347-348 GRAPE
4350-350 MANGO
Total no:of grapes - 3
Total no:of mangoes - 2
Total no:of apples - 1
f2.txt
2039-177 GRAPE
2039-177 GRAPE
2039-176 GRAPE
2039-176 GRAPE
234-450 APPLE
690-346 MANGO
690-346 MANGO
347-348 GRAPE
4350-350 MANGO
Total no:of grapes - 3
Total no:of mangoes - 2
Total no:of apples - 1
所需输出
2039-177 GRAPE
2039-177 GRAPE
2039-176 GRAPE
2039-176 GRAPE
234-450 APPLE
690-346 MANGO
690-346 MANGO
347-348 GRAPE
4350-350 MANGO
Total no:of grapes - 3
Total no:of mangoes - 2
Total no:of apples - 1
也许是这样的?(未经测试。) 此解决方案希望输入文件的名称作为命令行上的参数
use strict;
use warnings;
use List::Utils 'max';
my %count;
$count{ (split)[1] }++ while <>;
my $len = 1 + max map length, keys %count;
for (keys %count) {
printf "Total no:of %-*s - %d\n", $len, lc $_.'s', $count{$_};
}
使用严格;
使用警告;
使用列表::Utils'max';
我的%计数;
$count{(split)[1]}++while;
my$len=1+最大贴图长度,关键点百分比计数;
用于(键数百分比){
printf“总数:of%-*s-%d\n”、$len、lc$\'s'、$count{$\};
}
纯Perl:
$ perl -lane '$seen{$_}++ or ++$n{lc $F[1]};
END{print "Total no:of ${_}s - $n{$_}"
for sort { $n{$b} <=> $n{$a} } keys %n}' f1.txt f2.txt
Total no:of grapes - 3
Total no:of mangos - 2
Total no:of apples - 1