在Python中统计字符串中每个符号出现的次数

3
在这个问题中,你会得到一个字符串s,它代表着一段DNA序列。字符串s由'A'、'C'、'G'和'T'这些符号组成。一个长度为21的DNA字符串例子是"ATGCTTCAGAAAGGTCTTACG"。
你的任务是编写代码计算符号'A'、'C'、'G'和'T'在s中出现的次数。你的代码应该生成一个由4个整数组成的列表并将其打印出来。
# Here is the DNA string:
    s = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
    # Type your code here

我错误地在字母之间添加了空格。

s='A G C T T T T C A T T C T G A C T G C A A C G G G C A A T A T G T C T C T G T G T G G A T T A A A A A A A G A G T G T C T G A T A G C A G C'
list_of_symbols=s.split(sep=' ')
list_of_symbols
word_count_dictionary={}
for A in list_of_symbols:
    if A not in word_count_dictionary:
        word_count_dictionary[A]=1
    else:
        word_count_dictionary[A]+=1

将您的字符串附加到列表中并使用Counter方法: https://dev59.com/83E85IYBdhLWcg3wzm5p - Basile
2个回答

2
你正在尝试做collections.Counter所做的事情:
from collections import Counter

s = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'

print(Counter(s))

从那里获取计数列表,使用以下命令:
Counter(s).values()

0
你基本上是在正确的道路上,但没有必要分割字符串,因为Python已经为你提供了遍历字符串中每个字符的能力。
改进后的代码如下:
s = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'
word_count_dictionary = {}

for c in s:
    if c not in word_count_dictionary:
        word_count_dictionary[c] = 1
    else:
        word_count_dictionary[c] += 1

print(word_count_dictionary)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接