使用列表理解简化 for 循环和 if 语句

simplify for loop and if statement with list comprehension

我希望通过列表理解来简化以下内容:

for contract in response:
        if contract['symbol'] == symbol:
            price = contract['lastPrice']

我想出了:

[contract for contract in response if contract['symbol'] == symbol]:
        price = contract['lastPrice']

但我不确定这个语法是否正确。

给你;

price = [contract["lastPrice"] for contract in response if contract["symbol"] == symbol]

print(price)

推导式不是 python 中的复合代码块,而是在单行代码中定义特定 for 循环的简单表达式。由于您的问题是关于列表理解的,列表理解是一种以 returns 列表作为结果的表达式形式表达 lop(有或没有某些条件)的方式。 您还可以通过使用字典理解得到一个 dict() 作为结果。

编辑: 如果这是您问题的答案,请将其标记为已接受。谢谢!