嗨,我是编程新手,想学习 python。我正在编写一个代码,该代码应该返回列表中最冗余的项目。如果有超过 1 个,那么它应该全部返回。前任。
List = ['a','b','c','b','d','a'] #then it should return both a and b.
List = ['a','a','b','b','c','c','d'] #then it should return a b and c.
List = ['a','a','a','b','b','b','c','c','d','d','d'] #then it should return a b and d.
注意:我们不知道列表中哪个元素最常见,因此我们必须找到最常见的元素,如果有多个元素,则应返回所有元素。如果列表有数字或其他字符串作为元素,那么代码也必须工作
我不知道如何进行。我可以使用一点帮助。
这是整个程序:
from collections import Counter
def redundant(List):
c = Counter(List)
maximum = c.most_common()[0][1]
return [k for k, v in c.items()if v == maximum]
def find_kmers(DNA_STRING, k):
length = len(DNA_STRING)
a = 0
List_1 = []
string_1 = ""
while a <= length - k:
string_1 = DNA_STRING[a:a+k]
List_1.append(string_1)
a = a + 1
redundant(List_1)
该程序应获取 DNA 字符串和 kmer 的长度,并找出该 DNA 字符串中存在的该长度的 kemer。
样本输入:
ACGTTGCATGTCGCATGATGCATGAGAGCT
4
样本输出:
CATG GCAT