У меня недавно была эта проблема, я думал, что это было самое элегантное решение, потому что оно позволило вам написать for i,value,isLast in lastEnumerate(...):
:
def lastEnumerate(iterator):
x = list(iterator)
for i,value in enumerate(x):
yield i,value,i==len(x)-1
Например:
for i,value,isLast in lastEnumerate(range(5)):
print(value)
if not isLast:
print(',')