解决方法你把注释了的else加一个空格就可以了
因为你的else关键字和第二个for循环在一个缩进上而不是和if对齐,代码就被解析成for else语句了而不是if else语句了
的确是越界,但不是range里面的越界,而是循环中改变了列表的长度,导致当有删除元素后就会越界。比较合适的方法是使用filterx=[1,2,3]
y=filter(lambda i:i%2==0,x)
for i in y:
print(i)
问题补充中就是正确的用法,因为你没有索引下标。
解决方法你把注释了的else加一个空格就可以了
因为你的else关键字和第二个for循环在一个缩进上而不是和if对齐,代码就被解析成for else语句了而不是if else语句了
的确是越界,但不是range里面的越界,而是循环中改变了列表的长度,导致当有删除元素后就会越界。比较合适的方法是使用filterx=[1,2,3]
y=filter(lambda i:i%2==0,x)
for i in y:
print(i)
问题补充中就是正确的用法,因为你没有索引下标。