【发布时间】:2017-08-27 15:26:05
【问题描述】:
我有一个函数,它接受表达式并用我用作输入的值的所有排列替换变量。这是我已经测试过并且可以工作的代码,但是在查看了 SO 之后,人们说嵌套 for 循环是一个坏主意,但是我不确定如何使它更有效。有人可以帮忙吗?谢谢。
def replaceVar(expression):
eval_list = list()
a = [1, 8, 12, 13]
b = [1, 2, 3, 4]
c = [5, 9, 2, 7]
for i in expression:
first_eval = [i.replace("a", str(j)) for j in a]
tmp = list()
for k in first_eval:
snd_eval = [k.replace("b", str(l)) for l in b]
tmp2 = list()
for m in snd_eval:
trd_eval = [m.replace("c", str(n)) for n in c]
tmp2.append(trd_eval)
tmp.append(tmp2)
eval_list.append(tmp)
print(eval_list)
return eval_list
print(replaceVar(['b-16+(c-(a+11))', 'a-(c-5)+a-b-10']))
【问题讨论】:
-
itertools.product在这里可能有用。 -
我看过 itertools 但不确定如何实现
-
@carl saptarshi:以下任何答案对您有帮助吗?请记住将帮助您的答案标记为已接受的答案,或者以其他方式解释为什么它们都没有帮助您。
-
是的,R. Q. 确实帮助了我!并解释了该怎么做,谢谢:)
-
您能否将其标记为已接受的答案,然后请:-)
标签: python loops for-loop nested