gpt4 book ai didi

python - 递归地找到正确的读取顺序

转载 作者:行者123 更新时间:2023-12-01 05:51:27 25 4
gpt4 key购买 nike

我在完成这项任务几个小时后遇到了一些麻烦,而且我只是不知道该做什么。

首先,我需要一个函数,它接受字典参数,然后返回与最大值关联的键。这是我尝试过的:

def findKeyForLargestValue(d):
maxKey = ''
maxValue = 0

for name in d:
for subName in d[name]:
d = d[name][subName]

if d > maxValue:
maxKey = subName

return maxKey

然后我需要创建一个函数,将字符串“name”和字典“overlaps”作为参数,该函数必须返回读取名称列表,按照它们代表基因组序列的顺序:

`def findOrder(名称, 重叠):

读取顺序=[]`

我需要在另一个函数中使用函数 findKeyForLargestValue(d) 。我需要使用应该返回 [name] 的基本情况和应该返回 [name] + findOrder(nextName) 的递归情况,其中 nextName 是与当前读取(名称)右端具有最大重叠的读取的名称.

感谢任何帮助,因为我真的迷路了。甚至不确定 findKeyForLargestValue 的代码是否正确

最佳答案

“简单”的答案是使用内置 max功能:

from operator import itemgetter
def findKeyForLargestValue(d):
key,value = max(d.items(),key=itemgetter(1))
return key

正如评论中所述,如果内存确实是一个问题并且您使用的是 python2.x,那么您可以使用 d.iteritems() 而不是 d.items()。我通常使用 d.items() ,因为它可以在 python2.x 和 python3.x 上运行而无需修改(在这种情况下)以及与 d.items() 相关的额外内存code> 与 d.iteritems() 相反,几乎总是与我所做的任何工作无关。

<小时/>

如果您对 itemgetter 感到困惑,请参阅以下内容:

def func(seq):
return seq[1]

#`func(x)` will return the same thing that `itemgetter(1)(x)` returns
# for any indexible object `x`

关于python - 递归地找到正确的读取顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14150390/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com