gpt4 book ai didi

python - 避免 python 中的多个嵌套 for 循环

转载 作者:行者123 更新时间:2023-12-05 08:54:33 43 4
gpt4 key购买 nike

当一个嵌套 for 循环的范围达到外部 for 循环的当前迭代时,如何避免多个嵌套 for 循环?例如,考虑以下代码:该程序从列表 arr 返回一个三元组,使得 arr[i] - arr[j] = arr[j] - arr[k] = di<j<k .

d =3
arr = [1, 2, 4, 5, 7, 8, 10]
list1 = []

for biggest in range(0, len(arr)):
for bigger in range(0, biggest):
for big in range(0, bigger):
if abs(arr[big] - arr[bigger]) == d and abs(arr[bigger] - arr[biggest]) == d:
list1.append([arr[big], arr[bigger], arr[biggest]])
print(list1))

除了使用多个嵌套循环还有其他替代方法吗?

最佳答案

您可以将三个循环替换为:

from itertools import combinations

for big, bigger, biggest in combinations(range(0, len(arr)), 3):

您可以将所有代码替换为:

print([t for t in combinations(arr, 3)
if t[2] - t[1] == t[1] - t[0] == d])

关于python - 避免 python 中的多个嵌套 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49406217/

43 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com