基于值组合的python重新排序字典

时间:2015-11-22 22:42:20

标签: python

我正在尝试为AI编写目标优先级脚本。我的目标是根据评分groups = groupby( groupby( data, axis = 1 ), axis = 0 ) for group in groups : average = avg( group, axis = 2 ) final_result.append = [group[0][0], group[0][1], average] 对目标进行排名,并根据最高定位优先级对列表进行重新排序。我终于遇到了一个错误,但我并不知道如何解决这个问题。 <script type="text/javascript"> if (location.href.indexOf("DEUTCH") != -1) { document.head.innerHTML+='&lt;script src="javascript_deutch.js"&gt;&lt;/script&gt;'; }else{ document.head.innerHTML+='<&lt;script src="javascript_english.js"&gt;&lt;/script&gt;'; } </script>

我是Python的新手,主要是通过谷歌搜索我在Ruby中使用的术语。我也很感激有关如何使用正确的Python&#34; style&#34;如果我犯了任何重大错误。

damage_per_shot / rate_of_fire

回溯看起来像

'NoneType' object has no attribute 'get'

3 个答案:

答案 0 :(得分:0)

在函数focus_fire2中,默认情况下在函数定义的参数中将data设置为None。除非您在调用它时将其设置为None以外的其他内容,例如focus_fire2(data=something),否则当您执行时None等同于data.get()。我认为存在你的错误。您正在将NoneType视为dict。如果您在其上调用get,则可能应该将其设置为等于某些dict或其他。

答案 1 :(得分:0)

您收到错误,因为没有参数的run函数,默认情况下数据的类型为None。对我来说,这不是一个好主意,对于非可选参数,将默认值设置为None。您需要使用参数focus_fire2(aDict)运行函数,或将target_id=sorted(aDict, key=data.get)更改为target_id=sorted(aDict, key=aDict.get, reverse=True) target_idaDicttarget_id中的排序键列表,其中第一个值更高。但del aDict[target_id]是一个列表,此代码错误target_id Options = {1:self.add(), 2:self.sub() } 中必须包含哪些内容?

答案 2 :(得分:0)

只需替换

sorted(aDict, key=data.get)

通过

sorted(aDict, key=aDict.get)