今天在测试数据的时候偶然发现一个问题,如下: test = ['a','','b','','c','',''] for i in test: if i == '': test.remove(i) print(test) Out[3]: ['a', 'b', 'c', ''] for循环居然不能删除列表中所有空值! 偶然收到@有问题尽管问我 发的消息,才对此问题有些明白.下面是他的原话: for的计数器是依次递增的,但列表的内容已通过remove更改,i迭代的值为a '' '' ''然后越界,所以
删除列表中所有符合条件的值. 输入格式: 输入n,代表要测试n次.每次测试:首先,输入1行字符串(字符串内的元素使用空格分隔)然后,输入要删除的元素x. 输出格式: 输出删除元素x后的每行字符串.如果元素全部被删除,则输出空行.注意:行尾不得有多余的空格. 输入样例: 5 1 1 1 2 1 2 1 1 1 1 1 1 1 2 2 2 1 1 1 2 ab ab ab cd cd de de ab 1 1 1 1 1 x y x x x z t 输出样例: 2 2 1 1 1 1 1 1 cd
一.range函数使用 range(1,5) 代表从1到4(不包含5),结果为:1,2,3,4 ,默认步长为1 range(1,5,2) 结果为:1, 3 (同样不包含5) ,步长为2 range(5,-1,-1) 反向输出,结果为:5,4,3,2,1,0 ,此时步长为-1,相当于每次减去1 二.list列表删除元素注意事项 for i in range(0,len(array)-1): if array[i]==array[i+1]: del array[i+1] 分析:该方法
列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的. 那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下. 一共有三种方法,分别是 remove,pop 和 del,下面来详细说明. remove L.remove(value) -> None -- remove first occurrence of value. Raises ValueError if the value is not present. remove 是从列表中删除指定的元素,参数是
循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: def test(data): for i in data: data.remove(i) return data data = [1, 2, 3] print(test(data)) 面对以上代码,乍一看以为会打印出空列表,因为test函数内通过for的方法将data中的元素都删除了,其实不然,实际输出如下: [2] 为什么会产生这种结果呢? 我们来深度剖析一下: 原列表在内存中为: 第一次执行到data.r