您的位置:首页 > 脚本大全 > > 正文

python删除list的指定元素(Python list列表中删除多个重复元素操作示例)

更多 时间:2022-01-20 00:42:38 类别:脚本大全 浏览量:683

python删除list的指定元素

Python list列表中删除多个重复元素操作示例

本文实例讲述了Python list列表中删除多个重复元素操作。分享给大家供大家参考,具体如下:

我们以下面这个list为例,删除其中所有值为6的元素:

  • ?
  • 1
  • l=[9,6,5,6,6,7,8,9,6,0]
  • 首先尝试remove方法:

  • ?
  • 1
  • 2
  • l.remove(6)
  • print(l)
  • 结果为:[9, 5, 6, 6, 7, 8, 9, 6, 0],只删除了第一个为6的元素。

    如果采用for循环遍历各元素:

  • ?
  • 1
  • 2
  • 3
  • for x in l:
  •   if x == 6:
  •     l.remove(x)
  • 结果为[9, 5, 7, 8, 9, 6, 0],后面的6没有删除。主要因为remove改变了list长度和每一个元素的位置。

    采用del语句需要找到元素对应下标del l[1]。应用for循环改变下标比较混乱,所以使用while循环:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • length=len(l)
  • x=0
  • while x < length:
  •   if l[x] == 6:
  •     # l.remove(l[x])
  •     del l[x]
  •     x -= 1
  •     length -= 1
  •   x += 1
  • 结果为[9, 5, 7, 8, 9, 0],删除了列表中所有的6。另外将del l[x]改为l.remove(l[x])也可以。

    补充:

    最近发现了numpy的unique()函数可以去除列表中所有重复元素且将列表元素从小到大排序:

  • ?
  • 1
  • 2
  • 3
  • 4
  • import numpy as np
  • l=[9,6,5,6,6,7,8,9,6,0]
  • a = np.unique(l)
  • print(a)
  • print(a)结果为[0 5 6 7 8 9]。l和a类型不同,前者是'list',后者是'numpy.ndarray'。

    PS:本站还有两款比较简单实用的在线文本去重复工具,推荐给大家使用:

    在线去除重复项工具:https://tool.zzvips.com/t/quchong/

    在线文本去重复工具:https://tool.zzvips.com/t/txtquchong/

    希望本文所述对大家Python程序设计有所帮助。

    原文链接:https://blog.csdn.net/qq_28811329/article/details/79950451

    您可能感兴趣