gpt4 book ai didi

python - 我实现的 for 循环超出范围 - 不确定问题是什么

转载 作者:行者123 更新时间:2023-12-02 02:14:58 25 4
gpt4 key购买 nike

lst = ['a', 'b', 'c', 'd', 'e', 'i', 'u', 'y', 'l', 'p']
if(len(lst)%3==0):
pointer = 0
lst1 = []
for i in lst:
for j in range(pointer, pointer+3):
lst1.append(lst[j])
print(lst1)
pointer += 3

else:
counter = 3
pointer = 0
lst1 = []
for i in lst:
for j in range(pointer, pointer+3):
lst1.append(lst[j])
counter -= 1
pointer+=3
if (counter != 0):
lst1.append(lst)
pointer+=1
counter-=1
print('nothing')

该错误与超出范围的lst1.append(lst[j])有关,但我找不到任何其他方法来修复它。代码应该获取一个列表(如果它能被 3 整除),将其分成具有 3 个分量的批处理,如果不能,则从列表的开头获取一些元素。

最佳答案

一种方法是使用 itertools.cycle 填充最后一组。

from itertools import cycle
from math import ceil

lst = ['a', 'b', 'c', 'd', 'e', 'i', 'u', 'y', 'l', 'p']
e = cycle(lst)
[[next(e), next(e), next(e)] for _ in range(ceil(len(lst)/3))]

# [['a', 'b', 'c'], ['d', 'e', 'i'], ['u', 'y', 'l'], ['p', 'a', 'b']]

关于python - 我实现的 for 循环超出范围 - 不确定问题是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67308890/

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