我正在嘗試對串列中的每 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”陳述句,它會在每次執行時運行。
處理這種情況的正確方法是什么?
uj5u.com熱心網友回復:
如果您不介意修改串列,這種方式非常簡單:
mylist = ["ValA","ValB","ValC","ValD","ValE","ValF","ValG","ValH","ValI","ValJ","ValK","ValL","ValM","ValN",]
while mylist:
function_for( mylist[:5] )
mylist = mylist[5:]
uj5u.com熱心網友回復:
您還可以檢查索引是否等于串列的長度。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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446701.html
