【发布时间】:2021-10-12 00:08:45
【问题描述】:
必须有一种方法可以在 Python 中优化此代码..
我有一个名为 calculate 的函数需要由不同的字典(operators1 和 operators2)运行两次。
def main(string):
for op1 in operators1:
return calculate(string, op1)
for op2 in operators2:
return calculate(string, op2)
我在这个例子中简化了很多代码,但是我还有一堆其他的 if 语句和 for 循环,这对于两个 for 循环来说是完全相同的。所以看着那个,我看到很多重复的行。而且我不喜欢重复的行,所以我尝试将其优化为 1 for 循环。
def main(string):
for x in range(2):
for op in operators+(x+1):
return calculate(string, op)
不幸的是,operators+(x+1) 或类似的东西不起作用。在将其视为字典的变量之前,它实际上并没有在其中添加 1 或 2。
接下来我尝试将两个字典放入一个新数组 opsArray
operatorsList = [operators1, operators2]
def main(string):
for x in range(2):
for op in operatorsList[x]:
return calculate(string, op)
这也没有用,所以现在我一无所知。
我只是想将第一个示例中的 2 个 for 循环组合成一个 for 循环,以避免重复的 if 语句。 有人可以告诉我我在这里尝试做的事情是否真的可行以及如何做?
【问题讨论】:
-
什么是操作?什么是总和?您应该使用与 sum 不同的变量名,因为那是关键字。
-
我们需要一个 sum 的例子以及一个 char1 和 char2。
-
@Mark 我简化了代码并添加了更多信息。我希望这会有所帮助。
-
@Kosaro 我不认为这里使用的变量类型应该重要吗?我没有重命名变量,所以我希望能有所帮助
-
用
result=calculate(...)代替return calculate(...)怎么样?后者返回而不回来做另一件事。
标签: python python-3.x for-loop