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

如何在python中高效地执行多个IF语句,python,Python,比较两组变量并在它们不相等的情况下做些什么,哪一种方法更为有效? 例如,这是可行的,但我觉得可能有比多个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

比较两组变量并在它们不相等的情况下做些什么,哪一种方法更为有效? 例如,这是可行的,但我觉得可能有比多个
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
是不同的还是相同的代码(很抱歉混淆)<代码>#做点什么是不同的。下面更能代表我正在努力实现的目标

#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'

如果要比较项目对,可以使用
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
如果所有的“做点什么”都是一样的,你可以这样做

A = [1, 5, 6, 10, 15]
B = [2, 5, 6, 10, 14]

x = 0
while x < len(A) and x < len(B):
    if A[x] != B[x]: #if not equal
        #do something
    x += 1
A=[1,5,6,10,15]
B=[2,5,6,10,14]
x=0
而x
如果每个人的“#做点什么”是不同的,那么你可以这样做

A = [1, 5, 6, 10, 15]
B = [2, 5, 6, 10, 14]
C = ['something1', 'something2', 'something2', 'something1', 'something3']

def something(string):
    if string == 'something1':
        #do something1
    elif string == 'something2':
        #do something2
    elif string == 'something3':
        #do something3

x = 0
while x < len(A) and x < len(B):
    if A[x] != B[x]: #if not equal
        something(C[x])
    x += 1
A=[1,5,6,10,15]
B=[2,5,6,10,14]
C=['something1','something2','something2','something1','something3']
定义某物(字符串):
如果string=='something1':
#做点什么
elif字符串=='something2':
#做点什么
elif字符串=='something3':
#做点什么
x=0
而x
所有的
#做点什么
是否代表相同的代码?解决方案可能会根据您的
#做点什么
部分而有所不同!您可以将这两组值放入容器中,然后使用来同时迭代这两组值。您的第一步是学习聚合数据以表示您的想法。很好,尽管有点犹豫,但如果没有OP的澄清,我们不知道“做点什么”是否可以转换为函数调用——例如,它可能会在当前范围内分配变量。(请澄清一下)我只是喜欢这里的答案,我每天都能学到这样的细微差别。@alani-即使代码不适合回调,也应该可以使用容器进行赋值
comparisonResults=dict()
然后分配到其中以存储它们以供以后检索。无论哪种方式,
zip
都是python中进行成对操作的正确方法。