相关疑难解决方法(0)

如何将列表拆分为大小均匀的块?

我有一个任意长度的列表,我需要将它分成相同大小的块并对其进行操作.有一些明显的方法可以做到这一点,比如保留一个计数器和两个列表,当第二个列表填满时,将它添加到第一个列表并清空下一轮数据的第二个列表,但这可能非常昂贵.

我想知道是否有人对任何长度的列表都有一个很好的解决方案,例如使用生成器.

我一直在寻找有用的东西,itertools但我找不到任何明显有用的东西.但是可能会错过它.

相关问题:在块中迭代列表的最"pythonic"方法是什么?

python split list chunks

2068
推荐指数
40
解决办法
84万
查看次数

使用Python正则表达式拆分非重叠字符组(ORF发现)

我正在寻找一种漂亮的pythonic方法来找到DNA序列中的开放阅读框架.我发现许多在线实现使用索引,标志和其他这样的丑陋.

我很确定可以创建正则表达式实现,但我对正则表达式不好.一般的想法是我想通过'ATG','TAG','TGA'和'TAA'分割出一串DNA序列.但是我不想在重叠区域上分裂,例如序列'ATGA'应该分成'ATG','A'.基本上在三个框架中的每个框架中从左到右.

为清晰起见编辑:如评论中所述,尽管存在(在非零帧中),但ATGATTTTGA应该将一个序列拆分为ATG,TTTTGATGA

edit2:这就是我在没有正则表达式的情况下使用list comprehension splitting链接实现的方法.我讨厌使用旗帜.

def find_orf(seq):
    length = 0
    stop = ['TAA','TGA','TAG']
    for frame in range(3):
        orfFlag, thisLen = None, 0
        splitSeq = [seq[start+frame:start+frame+3] for start in range(0,len(seq),3)]
        for codon in splitSeq:
            if codon == 'ATG':
                orfFlag = True
                thisLen += 1
            elif orfFlag and codon in stop:
                orfFlag = None
                if thisLen > length:
                    length = thisLen
            else:
                thisLen += 1
    return length
Run Code Online (Sandbox Code Playgroud)

python regex

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

计算文件中某个三联体的数量(DNA密码子分析)

这个问题实际上是用于DNA密码子分析,用简单的方式来说,假设我有一个这样的文件:
atgaaaccaaag ...
而且我想计算这个文件中存在的'aaa'三元组的数量.重要的是,三元组从一开始就开始(这意味着atg,aaa,cca,aag,......)因此在这个例子中结果应该是1而不是2'aaa'.
有没有Python或Shellscript方法来做到这一点?谢谢!

python shell bioinformatics

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

Python - 将字符串拆分为配对字符列表

可能重复:
如何在Python中将列表拆分为大小均匀的块?
按字符数分割字符串

我有一个字符串(十六进制),如:

717765717777716571a7202020
Run Code Online (Sandbox Code Playgroud)

我需要把它变成格式:

0x71,0x77,0x65,0x71,0x77,0x77...
Run Code Online (Sandbox Code Playgroud)

我不确定最好的方法是什么

python string hex list

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

标签 统计

python ×4

list ×2

bioinformatics ×1

chunks ×1

hex ×1

regex ×1

shell ×1

split ×1

string ×1