【发布时间】:2022-01-02 09:55:08
【问题描述】:
我正在尝试在我的代码中如何压缩 if 语句。我有一个我正在做的项目,它有几个“if”语句(太多而无法跟踪)并且想找出一种方法来压缩它们。显然这涉及到一个 for 循环,但我无法在这个循环中添加额外的操作。
我想出了以下工作示例来演示我的问题:
num=6
if_options = [num==5, num==6]
for i in range(len(if_options)):
if if_options[i]:
print(num)
我想在代码中添加一个额外的部分。这个附加部分将在 if 语句中执行一个操作。请参阅以下无效示例作为我要完成的工作的框架:
num=6
if_options = [num==5, num==6]
operations = [num=num+1, num=num-1]
for i in range(len(if_options)):
if if_options[i]:
operations[i]
print(num)
无论出于何种原因,它都不会执行代码的操作部分,并会因语法错误而失败。它不允许我在列表中声明命令“num=num+1”(不带引号),但是此声明对于执行命令是必需的。我觉得我错过了一件小事,这应该很容易解决。 提前致谢!
【问题讨论】:
-
你能解释一下这样做的目的吗?也许有更好的方法来做你的目标。
-
我不认为您的“工作示例”以您认为的方式工作。当您评估表达式
[num==5, num==6]时,比较是在在那个时刻执行的 - 您分配给if_options的只是列表[False, True]。因此,即使您对operations的表达式在语法上是有效的,它也毫无意义,因为所有操作都已经执行。 -
@jasonharper 是
operations行甚至有效吗?
标签: python string function loops for-loop