(1)删除列表元素引起的下标变化错误
演示代码:
x = list(range(10))
for i in range(len(x)):
if x[i]%2 == 0:
del x[i]
出错信息:...这会导致插入和删除位置之后的元素下标发生变化。上面的代码不仅会抛出异常,还会因为下标的变化而导致有些元素被跳过没有处理。...,应从后往前删除,避免因为下标变化导致的问题。...1, 2, 3, 5, 7, 9]
[0, 1, 2, 3, 5, 7, 9]
[0, 1, 3, 5, 7, 9]
[0, 1, 3, 5, 7, 9]
[1, 3, 5, 7, 9]
(2)不可下标错误...map、zip、enumerate、filter、生成器对象等类似的有序、惰性对象只能按序访问,在前面的元素访问之前不支持按位置直接访问后面的元素,也不支持切片操作,并且已访问过的元素不可以再次访问。