Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 给定预定义的字符/值对,将字符映射到其值_Python_String_Floating Point - Fatal编程技术网

Python 给定预定义的字符/值对,将字符映射到其值

Python 给定预定义的字符/值对,将字符映射到其值,python,string,floating-point,Python,String,Floating Point,我有预定义的字符串/值对,如下所示: A = 137.05 B = 128.09 C = 131.04 D = 147.06 我的函数接收一个字符串,如string=“BBDADC”,我必须迭代每个字符并对每个对应的浮点值求和。如何将每个字符映射到其预定义值?下面的打印循环显示映射不是自然发生的,打印结果是打印字符,而不是预定义的值。可能是因为A’?。有没有办法进行这种映射?就我而言,使用字典或列表是没有必要的。谢谢 for chr in string: print chr # print g

我有预定义的字符串/值对,如下所示:

A = 137.05
B = 128.09
C = 131.04
D = 147.06
我的函数接收一个字符串,如string=“BBDADC”,我必须迭代每个字符并对每个对应的浮点值求和。如何将每个字符映射到其预定义值?下面的打印循环显示映射不是自然发生的,打印结果是打印字符,而不是预定义的值。可能是因为A’?。有没有办法进行这种映射?就我而言,使用字典或列表是没有必要的。谢谢

for chr in string:
print chr # print gives a chr, therefore sum += chr doesn't make sense
          # float(chr) neither makes much sense nor works

将这些字符串-值对存储在字典中

weights = {'A': 137.05, 'B': 128.09, 'C': 131.04, 'D': 147.06}
并查找它们:

for chr in peptide:
    sum += weights[chr]

只要您有一对名称和值,或者更一般地说,只要您希望能够基于键存储和查找某些信息,就可以使用字典。

+1或者更简洁地说,
sum(在'BBDADC'中res的权重[res])
甚至
sum(map(weights.get,'BBDADC'))
如果您需要高精度,请使用整数(1370512809,…)求和,最后除以100.0。