Python 中的单行 if then else 递增

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

对于 Python 中的数据科学课程,我需要将现有的 if then else 代码更改为单行代码。

当前代码是:

if c[i] == 'fine':
    a[i] += 3
elif c[i] == 'check':
    a[i] += 1
else:
    a[i] += 0

我创建了一段代码(一个行),它应该执行相同的操作,但这会产生“无效语法”错误:

a[i] += 3 if c[i] == 'fine' else (a[i] += 1 if c[i] == 'check'  else a[i] += 0)

你能告诉我应该改变什么吗?

python
1个回答
0
投票

您不得在右侧重复

a[i] +=

正确的语法是

a[i] += <expression by which you increment a[i]>

但是

a[i] +=
不能是表达式的一部分,它是一个语句

所以:

a[i] += 3 if c[i] == 'fine' else (1 if c[i] == 'check' else 0)
© www.soinside.com 2019 - 2024. All rights reserved.