Python统计DNA字符串中核苷酸数量求助(含小写处理)
DNA核苷酸大小写统一统计解决方案
你的代码当前会因为遇到小写核苷酸触发KeyError——因为字典的键只有大写形式,无法匹配小写字符。用upper()方法可以快速统一所有字符的大小写,实现正确统计:
修改后的代码:
DNA = "ACgttGTcgtTTgaCCGacACCGGTTAACCGGTACGGTAACAAGGTTTAGGTA" DNA_nucs = {'A':0, 'C':0, 'G':0, 'T':0} for nuc in DNA: # 将每个核苷酸转为大写,匹配字典中的键 DNA_nucs[nuc.upper()] += 1 # 输出最终统计结果 print(DNA_nucs)
关键说明:
nuc.upper()会把当前遍历到的字符(无论大小写)转为大写,比如'g'变成'G','t'变成'T',这样就能精准对应字典里的键- 去掉了循环内的
print,改为循环结束后打印最终结果,避免输出大量中间过程,更易查看统计结论 - 如果后续需要单独统计大小写核苷酸的数量,可以扩展字典加入小写键,但当前需求用
upper()统一统计的方案最简洁高效
内容的提问来源于stack exchange,提问作者Keith Creech
相关产品推荐
相关产品推荐

