猿问

如何在python中高效执行多个IF语句

比较两组变量并在它们不相等时执行某些操作的更Pythonic或更有效的方法是什么?例如,这可行,但我觉得可能有比多个if语句更好的方法?


#Var set A

a=1

b=5

c=6

d=10

e=15

#Var set B

aa=2

bb=5

cc=6

dd=10

ee=14

#comparison code

if a == aa:

    #do something

if b == bb:

    #do something

if c == cc:

    #do something

if d == dd:

    #do something

if e == ee:

    #do something

我的实际代码将需要大约 50 个 if 语句,因此我正在寻找一种更有效的方法。谢谢!


编辑


我在上面留下了原始代码,因为有些人已经回答了,但他们不确定#do something代码是否不同或相同(抱歉造成混淆)。#do something是不同的。下面更能代表我想要完成的任务。


#Var set A

a=1

b=5

c=6

d=10

e=15

#Var set B

aa=2

bb=5

cc=6

dd=10

ee=14

#comparison code

if a == aa:

    a = 'match'

if b == bb:

    b = 'match'

if c == cc:

    c = 'match'

if d == dd:

    d = 'match'

if e == ee:

    e = 'match'


慕哥9229398
浏览 166回答 2
2回答

弑天下

如果您要比较成对的项目,您可以使用zip以下方法创建对:for left, right in zip([a,b,c,d,e],[aa,bb,cc,dd,ee]):  if left == right:    # a == aa, b == bb, etc.如果“做某事”每次都不相同,则将回调添加为 zip 的第三个参数:for left, right, fn in zip([a,b,c,d,e],[aa,bb,cc,dd,ee],[fa,fb,fc,fd,fe]):  if left == right:    fn(left, right) # Assumes fa takes a and aa as arguments, etc

幕布斯7119047

如果所有的“#do some”都是相同的,你就可以这样做。A = [1, 5, 6, 10, 15]B = [2, 5, 6, 10, 14]x = 0while x < len(A) and x < len(B):&nbsp; &nbsp; if A[x] != B[x]: #if not equal&nbsp; &nbsp; &nbsp; &nbsp; #do something&nbsp; &nbsp; x += 1如果“#do some”对于每个人来说都是不同的,那么你就做这样的事情。A = [1, 5, 6, 10, 15]B = [2, 5, 6, 10, 14]C = ['something1', 'something2', 'something2', 'something1', 'something3']def something(string):&nbsp; &nbsp; if string == 'something1':&nbsp; &nbsp; &nbsp; &nbsp; #do something1&nbsp; &nbsp; elif string == 'something2':&nbsp; &nbsp; &nbsp; &nbsp; #do something2&nbsp; &nbsp; elif string == 'something3':&nbsp; &nbsp; &nbsp; &nbsp; #do something3x = 0while x < len(A) and x < len(B):&nbsp; &nbsp; if A[x] != B[x]: #if not equal&nbsp; &nbsp; &nbsp; &nbsp; something(C[x])&nbsp; &nbsp; x += 1
随时随地看视频慕课网APP

相关分类

Python
我要回答