社区
脚本语言
帖子详情
大家看看这个去除一个数组中的冗余信息的代码那里有问题?
Tuexy
2010-01-02 10:53:41
@result_ID = sort @result_id; # obtain the unique gene items ??
for ($m=0; $m < $#result_ID;)
{
$n = 0;
next if($result_ID[m] eq $result_ID[++$m]);
push(@result, $result[$m]);
}
...全文
66
3
打赏
收藏
大家看看这个去除一个数组中的冗余信息的代码那里有问题?
@result_ID = sort @result_id; # obtain the unique gene items ?? for ($m=0; $m < $#result_ID;) { $n = 0; next if($result_ID[m] eq $result_ID[++$m]); push(@result, $result[$m]); }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
msdn4zillion
2010-12-31
打赏
举报
回复
拜托 你的代码写得不准确啊,$result_ID[m]
还有你的比较算法 似乎 不对啊 临近的两两比较 并不能保证 数组元素值唯一,是不是?
Tuexy
2010-01-03
打赏
举报
回复
大家帮帮忙看看吧
Tuexy
2010-01-02
打赏
举报
回复
整个程序代码为:
#!/usr/bin/perl -w
@cat_enzyme = ('SMARCA4', 'SMARCA2');
@core_sub=('ARID1A', 'ARID1B', 'SMARCC1', 'SMARCC2', 'SMARCB1', 'SMARCE1');
@interactor=('AR', 'ESR1', 'ESR2');
$i = 0; $j = 0; $k = 0, $l = 0, $p = 1;
while($p)
{
@file = ("the file contains the genes you want to match", "the target file", "the the path for the four files", "search level: ");
print("please input : $file[0] \n : \$file[1] \n $file[2]: \n $file[3]: \n each item should write in a line (end by ctrl+z)");
@input = <stdin>;
for($a=0; $a< 3;)
{
print("Are you sure for $file[$a]: $file[$a]? \n (1 for YES, else for NO)");
}
$p = <stdin>;
}
sub search()
{
open(FILE, "$file[0]" || die "cannot open the file:$!");
while (<FILE>) #match the primary ID of genes and retrieve the pair of interaction
{
chomp ;
@line=split(/\t/,$_);
foreach $enzyme(@cat_enzyme)
{
if (($line[0] eq $enzyme)||($line[3] eq $enzyme))
{
$result_ce[$i++] = join(' ', $line[0], $line[2]);
$result_id[$l++] = $line[3]; $result_id[$l++] = $line[5];
last;
}
last if(($line[0] eq $enzyme)||($line[3] eq $enzyme));
}
foreach $subunit(@core_sub)
{
if (($line[0] eq $subunit) || ($line[3] eq $subunit))
{
$result_cs[$j++] = join(' ', $line[0], $line[2]);
$result_id[$l++] = $line[3]; $result_id[$l++] = $line[5];
last;
}
last if(($line[0] eq $subunit) || ($line[3] eq $subunit));
}
foreach $inter(@interactor)
{
if (($line[0] eq $inter) ||($line[3] eq $inter))
{
$result_int[$k++] = join(' ', $line[0], $line[2]);
$result_id[$l++] = $line[3]; $result_id[$l++] = $line[5];
last;
}
last if(($line[0] eq $inter) ||($line[3] eq $inter));
}
}
close(FILE);
@result_ID = sort @result_id; # obtain the unique gene items ??
for ($m=0; $m < $#result_ID;)
{
$n = 0;
next if($result_ID[m] eq $result_ID[++$m]);
push(@result, $result[$m]);
}
sub print()
{
open(FILE1, ">$file[2].search1.txt");
print FILE1 "catalytic enzyme matches\n\n"; #store the data in a file
foreach $R_C (@result_ce)
{
print FILE1 $R_C, "\n";
}
print FILE1 "\ncore subunits matches_enzyme\n\n";
foreach $R_C (@result_cs)
{
print FILE1 $R_C, "\n";
}
print FILE1 "\ninteractor matches \n";
foreach $R_C (@result_int)
{
print FILE1 $R_C, "\n";
}
print FILE1 "\nSUMMARY:\n\n";
print FILE1 "catalytic enzyme matches: $#result_ce \n";
print FILE1 "core subunits matches: $#result_cs \n";
print FILE1 "interactor matches: $#result_int \n";
close(FILE1);
}
sub protein_sequence () #retrieve the protein sequence information
{
open(FILE1, "$file[1]" or die "cannot open file: $!");
while(@line1 = <FILE>)
{
chomp(@line1);
$o=0;
@line = split(/'|'/, @line1);
foreach(@result){
if($line[3] eq $_)
{
$protein[$o++] = (@line1, '\n', <FILE>, '\n');
last;
}
}
}
close(FILE1);
open(FILE2, ">$file[2].search2.txt" or die "cannot open file: $!");
print FILE2 @protein;
close(FILE2);
}
search();
protein_sequence();
在 PHP 中从
数组中
删除
一个
元素
有没有一种简单的方法可以使用 PHP 从
数组中
删除
一个
元素,从而使 foreach ($array) 不再包含该元素?我认为将它设置为 null 会做到这一点,但显然它不起作用。
两个有序数组的合并排序(归并思想),Java
代码
实现,并去重复,考虑空间利用率
问题
下面是我写的
代码
,
代码
看起来长,可能确实有点
冗余
,但是容易理解,如果有错或者可以优化,麻烦你指出来,可以共同学习,谢谢。 题目要求:数组A,B有序,要求合并A,B,并且
去除
重复元素。 下面
代码
实现的复杂度...
快速删除数组多余的内容
如果
一个
数组中
的值,仅有前面的几个有用了,后面的需要删除,最快捷的方式就是申明数组的长度,把申明长度之后的内容就自动删除了。看,扩大数组长度,没有定义值的都是空的。
深究C语言数组那点事(一维数组)
在C语言中,几乎所有的数组在使用时,数组名都是作为
一个
指针常量,即数组第
一个
元素的地址,来使用的。其类型,完全取决于数组元素的类型,如果他们是int类型,那么数组名的类型就是指向“int的常量指针”,如果是...
【C语言专栏】:一级/二级指针?数值指针/指针数组?函数指针/函数指针数组?转移表的实现
✨欢迎来到指针汇总章节!相信各位都听说各种指针名字吧!...但是一级指针和普通类型变量的定义也有些许区别,并且含义不一样。指针嘛,在前面章节讲到指针即地址,指针变量就是专门用来存储地址。int a=10;
脚本语言
37,744
社区成员
34,212
社区内容
发帖
与我相关
我的任务
脚本语言
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
复制链接
扫一扫
分享
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
试试用AI创作助手写篇文章吧
+ 用AI写文章