題目:https://rosalind.info/problems/dna/
給一段ATCG序列,分別計算出A、C、G、T各別出現幾次
所以從頭到尾數一遍,使用一個dict()來紀錄出現次數。
最後,因為題目要求的順序依次是A C G T按照字母排序
但第一次寫
個人習慣上還是採ATCG命名,所以在印出之前使用sorted()來排序字母
s = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
counts = {'A': 0, 'T': 0, 'C': 0, 'G': 0}
for i in range(len(s)):
match s[i]:
case 'A':
counts['A'] += 1
case 'T':
counts['T'] += 1
case 'C':
counts['C'] += 1
case 'G':
counts['G'] += 1
for key in sorted(counts):
print(counts[key], end=' ') # 沒去掉最後一個空白字符
# print(" ".join(str(counts[key]) for key in sorted(counts))) # 去掉最後一個空白字符
(後來才發現ACGT按順序,這是主流風格,
因為FASTA格式、GenBank等生物資訊數據庫通常都按照 ACGT 排序)
s = "AGCTTTTCATTCTGACTGCAACGGGCAATATGTCTCTGTGTGGATTAAAAAAAGAGTGTCTGATAGCAGC"
counts = {'A': 0, 'C': 0, 'G': 0, 'T': 0}
for i in range(len(s)):
match s[i]:
case 'A':
counts['A'] += 1
case 'C':
counts['C'] += 1
case 'G':
counts['G'] += 1
case 'T':
counts['T'] += 1
print(" ".join(str(counts[key]) for key in counts)) # 去掉最後一個空白字符
# print(counts['A'], counts['C'], counts['G'], counts['T'])