我在使用下面的一段代码时遇到了一些麻烦:
输入: li 是一个嵌套列表,如下所示:
li = [['>0123456789 mouse gene 1\n', 'ATGTTGGGTT/CTTAGTTG\n', 'ATGGGGTTCCT/A\n'], ['>9876543210 mouse gene 2\n', 'ATTTGGTTTCCT\n', 'ATTCAATTTTAAGGGGGGGG\n']]
使用下面的函数,在整个子列表中存在的“/”数量大于 1 的情况下,我想要的输出只是“>”后面的第 2 到第 9 位数字。
相反,我的代码将数字提供给所有条目。此外,它给了他们多次。因此,我认为我的计数器和 for 循环有问题。我无法完全弄清楚这一点。
任何帮助,非常感谢。
import os
cwd = os.getcwd()
def func_one():
outp = open('something.txt', 'w') #output file
li = []
for i in os.listdir(cwd):
if i.endswith('.ext'):
inp = open(i, 'r').readlines()
li.append(inp)
count = 0
lis = []
for i in li:
for j in i:
for k in j[1:] #ignore first entry in sublist
if k == '/':
count += 1
if count > 1:
lis.append(i[0][1:10])
next_func(lis, outp)
谢谢,S :-)