请帮忙。我有这些 for 循环:
path = None
for key, value in items:
if key == a and value == b:
path1 = key.func()
break
if path is None:
return False
for banana in bananas:
found_match = False
for key, value in items:
path2 = key.func()
if key == banana[0] and value == banana[1] and path1 in path2
found_match = True
break
if not found_match:
...
两个内部 for 循环看起来很相似,但第二个有额外的
path1 in path2
条件。
有没有办法写得更好?也许有辅助功能? 使用列表理解或 lambda 函数会是什么样子? 谢谢您的帮助,我是新手。
您确实可以通过使用辅助函数和列表推导来简化代码并避免重复内部循环逻辑。
def find_match(key, value, path1, items):
for k, v in items:
path2 = k.func()
if k == key and v == value and path1 in path2:
return True
return False
def main_logic(a, b, items, bananas):
path1 = None
for key, value in items:
if key == a and value == b:
path1 = key.func()
break
if path1 is None:
return False
for banana in bananas:
found_match = find_match(banana[0], banana[1], path1, items)
if not found_match:
# Your logic when there's no match
...
# Usage
items = [...] # Your list of items
bananas = [...] # Your list of bananas
a = ...
b = ...
result = main_logic(a, b, items, bananas)