码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python去除列表中重复元素的方法


    列表中元素位置的索引用的是L.index

    本文实例讲述了Python去除列表中重复元素的方法。分享给大家供大家参考。具体如下:

    比较容易记忆的是用内置的set

    l1 = ['b','c','d','b','c','a','a'] 
    l2 = list(set(l1)) 
    print (l2)
    
    • 1
    • 2
    • 3

    还有一种据说速度更快的,没测试过两者的速度差别

    l1 = ['b','c','d','b','c','a','a'] 
    l2 = {}.fromkeys(l1).keys() 
    print (l2)
    
    • 1
    • 2
    • 3

    这两种都有个缺点,祛除重复元素后排序变了:

    ['a', 'c', 'b', 'd']
    
    • 1

    如果想要保持他们原来的排序:

    用list类的sort方法

    l1 = ['b','c','d','b','c','a','a'] 
    l2 = list(set(l1)) 
    l2.sort(key=l1.index) 
    print (l2)
    
    • 1
    • 2
    • 3
    • 4

    也可以这样写

    #Python学习交流群:711312441
    l1 = ['b','c','d','b','c','a','a'] 
    l2 = sorted(set(l1),key=l1.index) 
    print (l2)
    
    • 1
    • 2
    • 3
    • 4

    也可以用遍历

    l1 = ['b','c','d','b','c','a','a'] 
    l2 = [] 
    for i in l1: 
      if not i in l2: 
        l2.append(i) 
    print (l2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    上面的代码也可以这样写

    l1 = ['b','c','d','b','c','a','a'] 
    l2 = [] 
    [l2.append(i) for i in l1 if not i in l2] 
    print (l2)
    
    • 1
    • 2
    • 3
    • 4

    这样就可以保证排序不变了

    在pythoncook里边提到的一种面向可哈希数据的取出相同元素的方法是:利用到了集合与生成器set、yield

    def dedupe(items):
    seen = set()
    for item in items:
    if item not in seen:
    yield item
    seen.add(item) 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    不可变类型可哈希,可变类型不可哈希,对于不可哈希的数据
    上述代码改成:

    def dedupe(items, key=None):
    seen = set()
    for item in items:
    val = item if key is None else key(item)
    if val not in seen:
    yield item
    seen.add(val)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置
    IOC和DI入门案例
    HTTP/2的三大改进:头部压缩、多路复用和服务器推送
    mysql(九)mysql主从复制
    Flink KafkaSink分区配置的不同版本对比
    请实现一个链式的哈希表
    神经网络之万能定理python-pytorch实现,可以拟合任意曲线
    目标检测-小目标检测方法
    15 高阶导数的概念
    在React中引用CSS方式及写法大全
  • 原文地址:https://blog.csdn.net/qdPython/article/details/127791219
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号