gpt4 book ai didi

python - 帮助生成器函数中的逻辑

转载 作者:行者123 更新时间:2023-11-28 16:51:11 25 4
gpt4 key购买 nike

<分区>

我正在尝试创建一个生成器函数:

def combinations(iterable, r, maxGapSize):
maxGapSizePlusOne = maxGapSize+1

pool = tuple(iterable)
n = len(pool)
if r > n:
return
indices = list(range(r))

while True:
for i in reversed(range(r)):
if indices[i] != i + n - r:
break
else:
return

indices[i] += 1
for j in range(i+1, r):
indices[j] = indices[j-1] + 1

previous = indices[0]
for k in indices[1:]:
if k-previous>maxGapSizePlusOne:
isGapTooBig = True
break
previous = k
else:
isGapTooBig = False

if not isGapTooBig:
print(indices)


combinations(("Aa","Bbb","Ccccc","Dd","E","Ffff",),2,1)

为了调试目的,我正在打印出我希望用来从名为“iterable”的参数中选择元素的索引。这给了我:

[0, 2][1, 2][1, 3][2, 3][2, 4][3, 4][3, 5][4, 5]

忽略 [0,1]因为这是在别处生产的...

这正是我想要的,但我猜我的代码过于复杂且效率低下。 iterable的大小可能有成千上万,而且很可能 maxGapSize < 5 .

有什么提示可以帮助我更好地做到这一点?

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