Skip to main content
 首页 » 编程设计

python之排序值(for 循环)

2025年05月04日9xing901022

我正在使用 python 2.7 开发一个简单的核苷酸计数器,在我编写的其中一种方法中,我想打印 g、c、a、t 值按它们出现的次数排序在基因表中。 有什么更好的方法可以做到这一点?提前致谢!

 def counting(self): 
    gene = open("BRCA1.txt", "r") 
    g = 0 
    a = 0 
    c = 0 
    t = 0 
    gene.readline() 
    for line in gene: 
        line = line.lower() 
        for char in line: 
            if char == "g": 
                g += 1 
            if char == "a": 
                a += 1 
            if char == "t": 
                t += 1 
            if char == "c": 
                c += 1 
    print "number of g\'s: %r" % str(g) 
    print "number of c\'s: %r" % str(c) 
    print "number of d\'s: %r" % str(a) 
    print "number of t\'s: %r" % str(t) 

请您参考如下方法:

使用 Counter类。

from collections import Counter 
counter = Counter(char for line in gene for char in line.lower() ) 
for char, count in counter.most_common(): 
    print "number of %s\'s: %d" % (char, count)