擅长:python、mysql、java
<p>为什么要设置pos?你在哪里用我?我不太明白你到底想做什么,但似乎你的代码对每个列表的第一个元素做了完全相同的计算,每次都对结果求和,因为pos没有改变,而I(来自嵌套for循环)在任何地方都没有使用。这也许就是为什么结果没有意义。你知道吗</p>
<p>也要避免在变量(列表)中使用内置类型的名称;或者使用核苷酸什么的?将函数名替换为更具描述性的名称,如logsum(或该数字表示的任何数字)。你知道吗</p>
<p>如果我尝试这个我得到4.41(这是接近,但没有雪茄;-))</p>
<pre><code>import math
def function_name(lst, background):
ab, cb, gb, tb = background[0], background[1], background[2], background[3]
a, c, g, t = lst[0][:], lst[1][:], lst[2][:], lst[3][:]
pos = 0
IC = 0
for pos in range(len(a)):
loga = math.log(((a[pos])/ab), 2)
logc = math.log(((c[pos])/cb), 2)
logg = math.log(((g[pos])/gb), 2)
logt = math.log(((t[pos])/tb), 2)
ICi = (a[pos]*loga + c[pos]*logc + g[pos]*logg + t[pos]*logt)
IC += ICi
return IC
</code></pre>
<p>希望这能帮你弄清楚你需要什么;—)祝你好运!你知道吗</p>