You go past the end here -- i+1 is outside the original list for the last entry:
for i in range(len(lst)) if item[i+1]
Perhaps it works if you simply do len(lst) - 1
Other way is to not use list comprehension but a normal for and check for more conditions there.