data = {'value1': 10, 'value2': 20, 'flag': True, 'condition': 'A'}
if data['flag'] and data['condition'] == 'A' and data['value1'] + data['value2'] > 30:
# 执行操作1
print("执行操作1")
elif not data['flag'] and data['condition'] == 'B' and data['value1'] * data['value2'] < 200:
# 执行操作2
print("执行操作2")
else:
# 执行操作3
print("执行操作3")
优化思路
- 使用函数封装条件判断:将每个条件判断封装成独立的函数,这样可以使主逻辑更加清晰,便于理解和维护。
def condition1(data):
return data['flag'] and data['condition'] == 'A' and data['value1'] + data['value2'] > 30
def condition2(data):
return not data['flag'] and data['condition'] == 'B' and data['value1'] * data['value2'] < 200
data = {'value1': 10, 'value2': 20, 'flag': True, 'condition': 'A'}
if condition1(data):
# 执行操作1
print("执行操作1")
elif condition2(data):
# 执行操作2
print("执行操作2")
else:
# 执行操作3
print("执行操作3")
- 使用字典映射:将条件和对应的操作以字典的形式存储,这样可以通过查找字典来决定执行的操作,减少冗长的
if - else
结构。
def operation1():
print("执行操作1")
def operation2():
print("执行操作2")
def operation3():
print("执行操作3")
def condition1(data):
return data['flag'] and data['condition'] == 'A' and data['value1'] + data['value2'] > 30
def condition2(data):
return not data['flag'] and data['condition'] == 'B' and data['value1'] * data['value2'] < 200
data = {'value1': 10, 'value2': 20, 'flag': True, 'condition': 'A'}
conditions = {
condition1: operation1,
condition2: operation2
}
for condition, operation in conditions.items():
if condition(data):
operation()
break
else:
operation3()