gpt4 book ai didi

python - 单行 if 语句 - Python

转载 作者:太空宇宙 更新时间:2023-11-04 07:08:20 25 4
gpt4 key购买 nike

我有

if board[a][b] == 0:
board[a][b] = chr(current_char)

我想重构为一行。类似于以下内容:

board[a][b] = chr(current_char) if board[a][b] == 0

看来我最接近的是

board[a][b] = chr(current_char) if board[a][b] == 0 else board[a][b]

但是 else 子句似乎是多余的。有没有在风格上更好的方法来实现这一目标?

最佳答案

在 Python 有三元运算符之前,Oldschool Python 有一个处理三元的技巧。实际上,这个技巧适用于许多编程语言。如果您保证不使用它,我只会告诉您。

promise ?

[val_if_false, val_if_true][bool(条件)]

OK,现在Python有了三元,看起来像

val_if_true if condition else val_if_false

但即使这样也有点草率。如果您真的想要一个衬里,请制作一个功能。

def val():
if condition:
return val_if_true
else:
return val_if_false

您的特定 案例更专业一些,因为您希望else 成为原始值。你可以做

box[a][b] = box[a][b] or chr(current_char)

但同样,if 语句的意图更具可读性和清晰性。

关于python - 单行 if 语句 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28823170/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com