循环删除列表中元素时千万别用正序遍历,一定要用反序遍历! 废话不多说,先上案例代码: 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
1.需求 num = [1,2,2,2,3,4,2,2,2,2,2,2,22,2]把列表中的有2的元素全部删除 2.编程代码 nums = [1,2,2,2,3,4,2,2,2,2,2,2,22,2]print("打印删除前的元素:")print(nums)temp = []for i in nums: if i !=2 and "2" is not str(i): temp.append(i)print("打印删除后的元素:&quo
方法1: 列表推导式 lst1 = [1, 3, 7] lst2 = [3, 5, 4] a = [x for x in lst1 if x in lst2] b = [y for y in (lst1 + lst2) if y not in a] print(a) print(b) 方法2: 普通的for循环 lst1 = [1, 3, 7] lst2 = [3, 5, 4] a = [] b = [] for i in lst1: for j in lst2: if i == j: a.ap
python循环删除列表元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 常见错误 常见错误一:使用固定长度循环删除列表元素 # 使用固定长度循环pop方法删除列表元素 num_list_1 = [1, 2, 2, 2, 3] for i in range(len(num_list_1)): if num_list_1[i] == 2: num_list_1.pop(i) else: print(num_list_1[i]) print("num_list_1:", num
今天在测试数据的时候偶然发现一个问题,如下: 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 '' '' ''然后越界,所以
如下代码,遍历列表,删除列表中的偶数时,结果与预期不符. a = [11, 20, 4, 5, 16, 28] for i in a: if i % 2 == 0: a.remove(i) print a 得到的结果为: >>> [11, 4, 5, 28] 其中偶数4和28都没有删掉,原因在于for循环在遍历列表时,是按照元素的索引依次访问元素的,当删除其中一个元素后,后面的元素会依次前移,即就是删除索引1处的元素20后,将访问索引为2的元素,但由于删除元素20之后,后面的元素会依次前
列表基本上是 Python 中最常用的数据结构之一了,并且删除操作也是经常使用的. 那到底有哪些方法可以删除列表中的元素呢?这篇文章就来总结一下. 一共有三种方法,分别是 remove,pop 和 del,下面来详细说明. remove L.remove(value) -> None -- remove first occurrence of value. Raises ValueError if the value is not present. remove 是从列表中删除指定的元素,参数是