如何在不完全连len()的情况下处理对列表中项目的操作



我试图对列表中的每5个项目进行操作,但如果其余项目不能平均划分为5个,我就不知道如何处理。现在我正在使用模,但我无法摆脱这种感觉,它不是完全正确的答案。下面是一个例子。。。

list = ["ValA","ValB","ValC","ValD","ValE","ValF","ValG","ValH","ValI","ValJ","ValK","ValL","ValM","ValN",]
newlist = []
i = 0
for o in list:
i += 1
newlist.append(o)

if i % 5 == 0:
for obj in newlist:
function_for(obj)
newlist.clear()

此代码将执行function_for((两次,但不会执行第三次来处理剩余的4个值。如果我添加一个'else'语句,它会在每次执行时运行。

处理这种情况的正确方法是什么?

如果您不介意修改列表,这种方法非常简单:

mylist = ["ValA","ValB","ValC","ValD","ValE","ValF","ValG","ValH","ValI","ValJ","ValK","ValL","ValM","ValN",]
while mylist:
function_for( mylist[:5] )
mylist = mylist[5:]

您还可以检查索引是否等于列表的长度。(此外,这里更习惯使用enumerate而不是计数器变量。(

lst = ["ValA","ValB","ValC","ValD","ValE","ValF","ValG","ValH","ValI","ValJ","ValK","ValL","ValM","ValN",]
newlist = []
for i, o in enumerate(lst, 1):
newlist.append(o)
if i % 5 == 0 or i == len(lst):
print(newlist)
newlist.clear()

相关内容

最新更新