原因是,在第2次和第3次循环中,m中的b,c已经去掉了。
则这个时候m=['a','d','e'],在最后一次循环中m[4]是没有这个值的,所以就out of range了
我建议你建一个临时的 m_temp =[]
修改下if m[temp] <>'b' and m[temp] <>'c':
m_temp.append(m[temp])
最后m_temp 即使你所需要的
因为你最开始len(m)得出的长度始终是开始的5。但你循环的时候,删除了元素,实际上len(m)已经发生变换,变成了4而后变成3,你要循环到5,肯定报错
m.remove后,m[4]不存在了、m[3]
所以循环到后面就报错了吧…