gpt4 book ai didi

python3列表删除大量重复元素remove()方法的问题详解

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章python3列表删除大量重复元素remove()方法的问题详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

前言 。

删除列表中的元素十分简单,有很多方法。使用最多的是remove方法,remove() 方法从集合中删除指定的元素。此方法与discard()方法不同,因为如果指定的项目不存在,remove() 方法将引发错误,而discard()方法不会。但是今天刚发现一个问题,remove在删除列表中重复的元素时,有时会漏掉,只删除了部分重复元素.

下面举一个例子:

删除num1列表中的0元素,思路就是遍历列表,然后删除元素.

期望输出:nums1 = [1, 2, 3] 。

实际输出:nums1 = [1, 2, 3, 0] 。

经过搜索后发现,出现以上问题的原因在于,列表的内存自动管理功能,在删除列表中的元素时,python会自动对列表内存进行收缩,并移动列表中的元素以保证元素之间没有间隙,所以使用“循环+remove()方法”来删除列表中某一重复元素时,如果存在相邻的该元素,在删除前面一个元素后,后一个元素会被移动到刚被删除的这个元素的位置,这样这个元素就“躲过了删除” 。

?
1
2
3
4
5
#删除num1列表中的0
nums1 = [ 1 , 2 , 3 , 0 , 0 , 0 ]
   for j in nums1:
   if j = = 0 :
    nums1.remove(j)

解决办法:

对于以上问题,解决思路是统计列表中重复的元素,若重复元素的个数大于0,则进行remove.

?
1
2
3
4
5
nums1 = [ 1 , 2 , 3 , 0 , 0 , 0 ]
while nums1.count( 0 ) > 0 :
  for j in nums1:
   if j = = 0 :
   nums1.remove(j)

参考文章:http://www.zzvips.com/article/185433.html 。

总结 。

到此这篇关于python3列表删除大量重复元素remove()方法的文章就介绍到这了,更多相关python3列表删除大量重复元素内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://www.cnblogs.com/bocaimao/p/13443764.html 。

最后此篇关于python3列表删除大量重复元素remove()方法的问题详解的文章就讲到这里了,如果你想了解更多关于python3列表删除大量重复元素remove()方法的问题详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com