1 回答

TA貢獻1906條經驗 獲得超3個贊
你的 while 循環正在測試是否next_item
不為 null,意思是不等于0
、None
、[]
、{}
等...所以一旦該值取 0,循環就會停止。
相反,你可以這樣做:
def test(current):
? ??
? ? iterator = iter(current)
? ? previous_item = next(iterator)
? ? current_item = next(iterator)
? ? next_item = 0
? ??
? ??
? ? while next_item is not None:
? ? ? ??
? ? ? ? try:
? ? ? ? ? ? next_item = next(iterator)? ? ? ?
? ? ? ? except StopIteration:
? ? ? ? ? ? next_item = None? ? ??
? ? ? ??
? ? ? ? if previous_item == current_item:
? ? ? ? ? ? current_item = next_item
? ? ? ? else:
? ? ? ? ? ? yield previous_item
? ? ? ? ? ? previous_item = current_item
? ? ? ? ? ? current_item = next_item
? ? ? ??
? ? if previous_item:
? ? ? ? yield previous_item
添加回答
舉報