小编Ian*_*des的帖子

将perl转换为python - 这一行做了什么(类变量混淆)

$self->{DES} ->{$id} = join("\t",@tmp[0 ..7]);

这一行是构造函数所在的perl类内部函数的一部分

sub new {
    my $class=shift;
    my $self ={};
    bless($self,$class);
    return $self;
}
Run Code Online (Sandbox Code Playgroud)

我解释它的方式是我们将id行存储为类变量DES,它是一个散列,其成员是$ id:.它是否正确?

我还想对=~运算符进行一些澄清(它似乎总是在正则表达式之前).据我所知,它基本上与python中的相同,re.X其中X依赖于perl中的正则表达式之后的标志(例如i).它是否正确?

python perl

2
推荐指数
1
解决办法
219
查看次数

这个if语句有什么作用?(字符串比较)

我试图理解一段代码循环一个文件,做各种赋值,然后输入一组if语句,其中一个字符串似乎与什么都没有比较.这里有什么/nonsynonymous//prematureStop/被比较的?我对python很有经验.

open(IN,$file);
    while(<IN>){
        chomp $_;
        my @tmp = split /\t+/,$_;
        my $id = join("\t",$tmp[0],$tmp[1]-1);
        $id =~ s/chr//;
        my @info_field = split /;/,$tmp[2];
        my $vat = $info_field[$#info_field];
        my $score = 0;
        $self -> {VAT} ->{$id}= $vat;
        $self ->{GENE} -> {$id} = $tmp[3];
        if (/nonsynonymous/ || /prematureStop/){...
Run Code Online (Sandbox Code Playgroud)

perl

2
推荐指数
1
解决办法
99
查看次数

perl中的多个哈希赋值 - 转换为python?为什么总是等于1?

如果我在perl中有这条线

$cds_score{$score}{$id} = 1;
Run Code Online (Sandbox Code Playgroud)

其中cds得分是一个哈希,最好的python等价

cds_score = {}
cds_score[score] = id
Run Code Online (Sandbox Code Playgroud)

从更一般的意义上讲,我很困惑为什么我经常在perl的哈希末尾看到= 1.在python中,似乎更有意义的是使这些列表附加而不是像{NC} -> {$id} =1我在python中写的那样的dict NC.append(id).这个想法只是在perl中存储长列表作为哈希比作为数组更好,如果你试图查找任意成员?

python perl

1
推荐指数
1
解决办法
99
查看次数

使用 sqlite3 / pysqlite 跨数据库连接

我有两个单独的数据库文件,每个文件的表都具有匹配的主键,但数据不同。我想根据另一个表中的值从一个表中提取行。在 CLI for 中sqlite3,我会这样做:

.open data.db
.open details.db
attach 'data.db' as data;
attach 'details.db' as details;

select details.A.colA from data.A join details.A using ('key') where data.A.colB = 0 and data.A.colC = 1;
Run Code Online (Sandbox Code Playgroud)

如何使用 重新创建这样的跨数据库连接pysqlite

python sqlite pysqlite

1
推荐指数
1
解决办法
1567
查看次数

标签 统计

perl ×3

python ×3

pysqlite ×1

sqlite ×1