Python CS50 DNA-它适用于小型.csv,但不适用于大型
我试图从CS50解决这个问题,但它只适用于小型数据库,当我尝试用于大型数据库时,程序会计算过多Python CS50 DNA-它适用于小型.csv,但不适用于大型,python,cs50,Python,Cs50,我试图从CS50解决这个问题,但它只适用于小型数据库,当我尝试用于大型数据库时,程序会计算过多 import csv if len(argv) != 3: print("DIGITA DIREITO, IMBECIL") exit() with open(argv[1], "r") as source: reader = list(csv.reader(source)) reader[0].remove("n
import csv
if len(argv) != 3:
print("DIGITA DIREITO, IMBECIL")
exit()
with open(argv[1], "r") as source:
reader = list(csv.reader(source))
reader[0].remove("name")
i = reader[0]
with open(argv[2], "r") as sequence:
seq = sequence.read()
values = []
for j in range(len(i)):
value = 0
counter = 0
pos = 0
prevpos = 0
while pos < len(seq):
pos = seq.find(i[j], pos)
if pos == -1:
counter = 0
break
elif (pos != 1):
counter += 1
prevpos = pos
pos += len(i[j])
if value < counter:
value = counter
values.append(value)
for row in range(len(reader)):
print(reader[row])
print(values)
values = list(map(str, values))
search = list(reader)
search.pop(0)
for result in search:
if result[1:] == values:
print(f"{result[0]}")
break
elif result == search[-1]:
print("No match")
导入csv
如果len(argv)!=三:
印刷品(“DIGITA DIREITO,笨蛋”)
退出()
以open(argv[1],“r”)作为源:
读卡器=列表(csv.reader(源))
读取器[0]。删除(“名称”)
i=读卡器[0]
以open(argv[2],“r”)作为序列:
seq=sequence.read()
值=[]
对于范围内的j(len(i)):
值=0
计数器=0
pos=0
prevpos=0
当pos
我认为您只是在计算序列中的STR重复次数,而不是最大连续STR重复次数。这就是问题所要问的请解释你所说的“过度计数”是什么意思-预期输出是什么,你实际得到了什么?