此 python 代码使用字典理解和条件表达式不起作用

This python code which uses dictionary comprehension with a conditional expression doesn't work

此 python 代码无效。
为什么?
任何替代代码?
谢谢!

 def suppress(D, threshold):
     return {i:0 if x < threshold else i:x for (i, x) in D.items()}

条件表达式是表达式,它们需要两个不同的表达式计算出一个值,

<expression 1> if <boolean expression> else <expression 2>

但是i:0不是表达式,它是字典显示的部分(这是一个表达式)。但就其本身而言,它只是一个语法错误。

你想要:

{i: <conditional expression> for (i, x) in D.items()}

或更完整地,

{i: 0 if x < threshold else x for (i, x) in D.items()}