python - 快速基本循环

标签 python loops for-loop

我的文件中有以下几行。以下是一行的示例:

NM_???? chr12 - 10 110 10 110 3 10,50,100, 20,60,110,

我有以下代码来获取信息:

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

因此,对于开始列表中的每个数字,结束列表中都有一个数字。 这意味着第一个密码子从 exonstarts[0] 开始并在 外显子[0]。第二个从 exonstarts[1] 开始,到 exonends[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内置正是您所寻找的:

>>> exonstarts = [10,50,100]
>>> exonends = [20,60,110]
>>> zip(exonstarts,exonends)
[(10, 20), (50, 60), (100, 110)]

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

相关文章:

python-3.x - 在循环中使用 print 的 end 参数时出现奇怪的问题

python - 将 "for loop"结果写入txt文件

python - 如何在 Linux 上安装 tensorflow

javascript - `_.forEach`和 `$.each`的区别

php - 添加计数到 jQuery 在 PHP foreach 中添加的行

r - 在了解R循环错误: unexpected '}' in “}” 方面需要帮助

java - 安装 pydev 时出错

python - 如何使Python中的for循环更快?

java - 最小/最大值无故改变

C语言中十六进制转十进制