首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

哪位高手有现成的字符串查找perl或者pyron程序:file A有一些数据列表,在file B中查找file A中存在的数据,并把相应的行打印出

2012-02-26 
谁有现成的字符串查找perl或者pyron程序:file A有一些数据列表,在file B中查找file A中存在的数据,并把相

谁有现成的字符串查找perl或者pyron程序:file A有一些数据列表,在file B中查找file A中存在的数据,并把相应的行打印出
自己不太懂。刚学。请师傅们如果有。请给我一个。

[解决办法]
伪代码如下
pseudo code
{{{
#!python
keydict = set()
for line in file a:
keydict.add(line)

for line in file b:
if line.find(any key in keydict):
print line

}}}
[解决办法]
怎么没缩进:

use strict;

open (A, 'a.txt') or die "open error: $!";
open (B, 'b.txt') or die "open error: $!";

my %data;
while (<A>) {
chomp;
$data{$_} = 1;
}
while (<B>) {
chomp;
if ($data{$_}) {
print "$_\n";
}
}

[解决办法]
晕,这个是笔误。

#!/usr/bin/perl 
open F1,"a.txt"; 
%a = map {chomp;$_=>1} <F1>; 

open F2,"b.txt"; 
%b = map {chomp;$_=>1} <F2>; 

for (keys %a, kyes %b) { $union{$_}++ && $isect{$_}++ }; 
@union = keys %union; #并集 
@isect = keys %isect; #交集 

close F1; 
close F2

[解决办法]
为什么不用grep呢?grep专为对比列表用的。

> >a.txt 






> >b.txt 







use strict; 

open (A, 'a.txt ') or die "open error: $!"; 
open (B, 'b.txt ') or die "open error: $!";
while ( <A >) { 
chomp; 
$data{$_} = 1; 


my @b=<B>;
my @same = grep( $data{$_},@b );

print @same;

热点排行