我正在尝试解决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))
调试这么长而复杂的单行代码非常困难。如果存在if-else块而不是列表理解,这将更具可读性。
当表达式简单时,最好使用综合和生成器表达式。否则,最好使用if-else块。