我想將一串字母分成一堆三元組并為每個三元組分配數字,然后找到數字的總和。我設法編碼直到編號分配部分。但無法生成總和。彈出很多錯誤。請幫忙。PS我是一名生物學家,對編碼一無所知。這是我的部分代碼:
gene_code = "abcdef"
split_strings = []
n = 3
for index in range(0, len(gene_code), n):
split_strings.append(gene_code[index : index n])
print(split_strings)
import re
gene_code = gene_code.replace('abc','1.2,')
gene_code = gene_code.replace('def','2.3,')
print(gene_code)
輸出如下
['abc', 'def']
1.2,2.3,
現在我想得到這些數字的總和。請幫忙?
uj5u.com熱心網友回復:
您可以創建一個替換字典。請注意,替換需要寫成數字,而不是字串,才能進行計算。獲得號碼串列后,您可以呼叫sum(list_of_numbers).
這是一些示例代碼:
gene_code = "abcdef"
split_strings = [gene_code[i:i 3] for i in range(0, len(gene_code), 3)]
replacements = {'abc': 1.2, 'def': 2.3}
numbers = [replacements[s] for s in split_strings]
print(sum(numbers))
如果某些字串沒有替換,則此代碼將出錯。您可以添加一個測驗并將這些數字替換為零:
numbers = [0 if not s in replacements else replacements[s]
for s in split_strings]
請注意,上面的代碼使用串列推導。這樣,一個回圈,例如:
new_list = []
for item in old_list:
new_list.append(func(item))
可以寫成
new_list = [func(item) for item in old_list]
一旦你習慣了這種表示法,你會發現它更容易閱讀和維護。當您使用串列串列時,它會變得特別有用。
從檔案中讀取:
replacements = {'abc': 1.2, 'def': 2.3}
with open("gene_codes.txt") as file:
for gene_code in file.readlines():
gene_code = gene_code.strip()
# print(gene_code)
split_strings = [gene_code[i:i 3] for i in range(0, len(gene_code), 3)]
numbers = [0 if not s in replacements else replacements[s]
for s in split_strings]
print(sum(numbers))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/424814.html
