我在一个文件中有以下几行。下面是一行的示例:
纳姆????chr12-10 110 10 110 3 10,50100,20,60110,
我有以下代码来获取信息:

fp = open(infile, 'r')
for line in fp:
     tokens = line.split()
     exonstarts = tokens[8][:-1].split(',')
     exonends = tokens[9][:-1].split(',')

这将给我一个这样的列表:
exonstarts = [10,50,100]
exonends = [20,60,110]

它有3个外显子(尽管文件中的其他行可能有多于或少于3个外显子,因此这必须适用于任意数量的外显子),它们来自:
 10-20
 50-60
 100-110

所以,对于开始列表中的每个数字,有一个在完成列表中。
也就是说,第一个密码子从exonstrats[0]开始,到
外显子[0]。第二个开始于外显节[1],结束于外显能[1]。
等等。
我该如何编写其余的代码,以便将元素按原样配对?
更新:
由此:
tokens = line.split()
exonstarts = tokens[8][:-1].split(',')
exonends = tokens[9][:-1].split(',')
zipped = list(zip(exonstarts, exonends))

我有另一个问题,我有一个刺痛,我想要这些碎片。例如,我想要chr_string[10:20]+chr_string[50:60]+chr_string[100:110]有没有一种方法可以轻松地说出来??

最佳答案

我相信你想要zip功能。

In [1]: exonstarts = [10,50,100]

In [2]: exonends = [20,60,110]

In [3]: zip(exonstarts, exonends)
Out[3]: [(10, 20), (50, 60), (100, 110)]

关于python - 快速基本循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10359309/

10-13 03:33