Python,小数之和
Python, sum of decimals
我想将一串字母拆分成一堆三元组,并为每个三元组分配数字,然后求出数字的总和。我设法编码直到号码分配部分。但无法生成弹出的 sum.Lot 错误。请帮忙。 P.S。我是一名生物学家,对编码一无所知。
这是我的部分代码:
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,
现在我想得到这些数字的总和。请帮忙?
您可以创建一个替换字典。请注意,替换需要写成数字,而不是字符串,以便能够进行计算。获得号码列表后,您可以调用 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))
我想将一串字母拆分成一堆三元组,并为每个三元组分配数字,然后求出数字的总和。我设法编码直到号码分配部分。但无法生成弹出的 sum.Lot 错误。请帮忙。 P.S。我是一名生物学家,对编码一无所知。 这是我的部分代码:
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,
现在我想得到这些数字的总和。请帮忙?
您可以创建一个替换字典。请注意,替换需要写成数字,而不是字符串,以便能够进行计算。获得号码列表后,您可以调用 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))