在需要使用多重循环时,由于python的缩进特性,代码的可读性会大大降低,因此我们可以通过调用itertools.product()来优化代码:
def find_twelve(num_list1, num_list2, num_list3):
"""从3个数中,寻找是否存在和为12的3个数"""
res = []
for num1 in num_list1:
for num2 in num_list2:
for num3 in num_list3:
if num1 + num2 + num3 == 12:
res.append((num1, num2, num3))
return res
引入product后:
from itertools import product
def find_twelve_v2(num_list1, num_list2, num_list3):
res = []
for num1, num2, num3 in product(num_list1, num_list2, num_list3):
if num1 + num2 + num3 == 12:
res.append((num1, num2, num3))
return res