【发布时间】:2016-10-09 19:53:13
【问题描述】:
我的代码如下所示:
if query.orderby:
for q in query.orderby:
if 'severity' in q:
注意:query.orderby 是一个字典列表。看起来像 [{“严重性”:“asc”},{“名称”:“desc”}] 我怎样才能优化这些线?有什么方法可以替换 for 循环,并且仍然获得与上面代码相同的功能?
【问题讨论】:
-
if语句的逻辑是什么?
-
这取决于你想在最后
if之后做什么。 -
基本上,如果存在“严重性”键,我会更改其值并根据键值对数组项进行排序
-
你写了“query.orderby 是一个字典列表”。如果
query始终具有.orderby属性,那么您的第一个if(if query.orderby:) 是多余的。否则,您的for循环后跟if至少在我看来,与迭代query.orderby的过滤版本的更复杂的解决方案一样好,例如for q in (q in query.orderby if 'severity' in q)— 您当前的实现(模第一个if,可以删除)添加了一定程度的缩进,但以更简洁的方式表达了您的目的
标签: python performance loops