【问题标题】:How to compare multiple values of dictionary and print the specific one如何比较字典的多个值并打印特定的值
【发布时间】:2021-08-05 17:19:13
【问题描述】:

计算生物学的一项重要任务是找到短 DNA 序列的重复模式。这些模式有助于 生物学家分析生活中不同部分的功能 存在。作为一名计算机科学专业的学生,​​你被要求编写一个程序 这将从 DNA 序列中找到给定长度的所有模式 以及它们在该序列中的存在次数。该信息将 帮助找到序列中给定长度的主导模式。 您还会发现主导模式。主导模式是 出现次数最多的序列。如果有多个占优 pattern 程序将打印“No Dominant Pattern found”。

样本输入:ATTCGATCG 3 样本输出:ATT 1 TTC 1 TCG 2 CGA 1 GAT 1 ATC 1 主导模式:TCG

样本输入:ATTCGATCGATC 4 样本输出:ATTC 1 TTCG 1 TCGA 2 CGAT 2 GATC 2 ATCG 1 未找到主导模式。

这是我试图解决的问题,我已经涵盖了几乎所有内容,但是我正在努力处理打印 主导字符串而没有主导字符串的最后一段代码。

dna = input()
new = []
n =0
for n in range(len(dna)-2):
    new.append(dna[n:n+3])
    n = n + 1

count = {}
for element in new:
    if element in count:
        count[element] += 1
    else:
        count[element] = 1
for keys, value in count.items():
    print("{} {}".format(keys, value))

max_value = 0
for key, value in count.items():
    if int(value) > max_value:
        if value == max_value:
            pass
        else:
            max_value = value

print(max_value)

def max_key(val):
    for key, value in count.items():
        if val == value:
            return key
print(max_key(max_value))

在哪里以及如何缩短代码

我是全新的

【问题讨论】:

    标签: python dictionary count compare max


    【解决方案1】:
    dna = input()
    new = [] 
    n =0
    for n in range(len(dna)-2):
        new.append(dna[n:n+3])
        n = n + 1
    
    count = {}
    Dominant_Pattern={}
    maxcount=0
    for element in new:
        if element in count:
            count[element] += 1
        else:
            count[element] = 1
        
        if count[element]>maxcount:
            maxcount= count[element]
            Dominant_Pattern=element +" "+str(maxcount)
    
     
    # print(list(count.keys()) [list(count.values()).index(maxcount)])
    print(Dominant_Pattern)
    

    如果你想要所有的 Dominant_Pattern 你可以取消注释 print(list(count.keys()) [list(count.values()).index(maxcount)])

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-06
      • 2021-06-01
      • 2022-11-12
      • 2019-08-03
      • 2018-10-05
      • 2021-12-26
      • 2021-01-07
      • 1970-01-01
      相关资源
      最近更新 更多