列表理解和多个if else语句[关闭]

问题描述 投票:0回答:1

我正在尝试解决python中的以下错误。但是,我不断收到语法错误。删除else (minP/(num+2)) if p[a]==0时没有出现语法错误。

这里是代码

p = dict(sorted([(a,p[a]) for num,a in enumerate(p) if p[a] > 0.0 else (a,minP/(num+2)) if      
p[a] == 0], key = lambda el: el[1], reverse = True))
python list dictionary syntax
1个回答
1
投票

调试这么长而复杂的单行代码非常困难。如果存在if-else块而不是列表理解,这将更具可读性。

当表达式简单时,最好使用综合和生成器表达式。否则,最好使用if-else块。

© www.soinside.com 2019 - 2024. All rights reserved.