繁体   English   中英

计算每个符号出现在字符串中的次数 - python

[英]Count the number of times each of the symbols appears in a string - python

在这个问题中,你会得到一个代表DNA字符串的字符串s。 字符串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

你正在尝试做什么collections.Counter做:

from collections import Counter

s = 'AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC'

print(Counter(s))

从那里获取计数列表,使用:

Counter(s).values()

你基本上是在正确的轨道,但没有必要拆分字符串,因为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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM