python删除列表中的某个值的全部元素

2025-10-29 09:42:27

1、首先我们先演示一下Python列表的remove的效果:代码如下

d=[1,2,3,4,5,1,1]

d.remove(1)

print(d)

可以看到的,这里删除1,只删除了下标最小的那个元素

python删除列表中的某个值的全部元素

2、实现方法1:先将列表转换为set,以此来去掉重复元素,然后转换为list,再排序sorted一下(排序的原因是转换为set之后,元素的顺序不一定还是原来的顺序)

代码入下:

#删除列表中更某个值得所有元素,可以利用python中set的元素唯一性,先将entry转换为set再删除

entry=["1","1","2"]

entry=list(set(entry))

entry.remove("1")

print(entry)

print(list(set(entry)))

#print(list(set(entry)).sort())

print(sorted(list(set(entry))))

python删除列表中的某个值的全部元素

3、第二种方式:利用for循环遍历找到要删除的元素,然后删除它(但是要注意的,遍历的时候应该从后往前遍历,否则会出现列表越界,因为删除元素之后,列表的最大下标也变了)

下面演示错误的方法:(代码复制到这过来缩进会变,记得修改)

c=[1,2,4,1,1,2]

for i in range(len(c)):

     if c[i]==1:

         c.remove(1)

print(c)

python删除列表中的某个值的全部元素

4、然后下面给出第二种方法的正确代码:

c=[1,2,4,1,1,2]

for i in range(len(c)-1,-1,-1):

     if c[i]==1:

          c.remove(1)

print(c)

python删除列表中的某个值的全部元素

5、第三种方法,使用列表解析式的方法实现,代码如下:

entry=["1","1","2"]

entry=[entry[i] for i in range(0,len(entry)) if entry[i]!="1"]

print(entry)

代码解析

 for i in range(0,len(entry)) 循环遍历

 if entry[i]!="1"循环遍历中判断

entry[i]代表对取出来的原列表相关值操作

最后返回一个新列表

python删除列表中的某个值的全部元素

6、第四种方式:利用filter和lambda表达式,代码如下:

arr=[1,1,3]

print(list(filter(lambda x:x!=1,arr)))

python删除列表中的某个值的全部元素

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢