我是靠谱客的博主 幸福手机,最近开发中收集的这篇文章主要介绍python 列表删除重复元素,remove,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ls = [1, 1, 2, 3, 4]
for i in ls:
    if i == 1: 
        ls.remove(i)
print(ls)
 # output: [1, 2, 3, 4]

原因是remove改变列表长度和元素的位置,第二次进入for循环时,指向ls[1],而此时ls长度已经改变,ls[1]是2而不是指向元素1了
看一下以下例子的输出就明白了

ls = [1, 1, 2, 3, 4]
for i in ls:
    ls.remove(i)

print(ls)

例子的输出不是[],而是[1, 3]

解决方案:
先将所有的元素取出,然后循环删除

    rem = [i for i in ls if i == 1]
    _ = (ls.remove(i) for i in rem )
    print(ls)

看一个小问题:

    rem = (i for i in ls if i == 1)
    # _ = (ls.remove(i) for i in rem )
    for i in rem:
        print(i)
        ls.remove(i)
    print(ls)
    # output: 
    # 1
    # [1, 2, 3,4]

虽然变成生成器,但是也是集合,所以rem中有一个元素1,集合自动去掉重复元素了。

最后

以上就是幸福手机为你收集整理的python 列表删除重复元素,remove的全部内容,希望文章能够帮你解决python 列表删除重复元素,remove所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部