你可以创建一个替换字典。请注意,为了能够进行计算,需要将替换项写成数字,而不是字符串。一旦你有了号码表,你就可以打电话了
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]
注意,上面的代码使用
list comprehension
.这样,一个循环,例如:
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))