从列表中删除重复项和原始项

2023-12-07

给定一个字符串列表,我想删除重复项和原始单词。

例如:

lst = ['a', 'b', 'c', 'c', 'c', 'd', 'e', 'e']

输出应该删除重复项, 所以像这样['a', 'b', 'd']

我不需要保留订单。


Use a collections.Counter() object,然后仅保留那些计数为 1 的值:

from collections import counter

[k for k, v in Counter(lst).items() if v == 1]

这是一个 O(N) 算法;您只需要循环遍历 N 个项目的列表一次,然后第二次循环遍历较少的项目 (

如果顺序很重要并且您使用的是 Python

counts = Counter(lst)
[k for k in lst if counts[k] == 1]

Demo:

>>> from collections import Counter
>>> lst = ['a', 'b', 'c', 'c', 'c', 'd', 'e', 'e']
>>> [k for k, v in Counter(lst).items() if v == 1]
['a', 'b', 'd']
>>> counts = Counter(lst)
>>> [k for k in lst if counts[k] == 1]
['a', 'b', 'd']

两种方法的顺序相同纯属巧合。对于 Python 3.6 之前的 Python 版本,其他输入可能会导致不同的顺序。

在 Python 3.6 中,字典的实现发生了变化,现在保留了输入顺序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从列表中删除重复项和原始项 的相关文章

随机推荐

  • 尝试从转储文件调试 Windows 应用商店应用程序

    让我从我的主要问题开始 然后下面我将添加一些细节和历史 我已经做了研究 但似乎无法将各个部分组合在一起 在投票否决我之前 请先要求澄清 我的问题 为什么我的 Windows 应用商店应用程序可以在 Windows 8 1 64 位和 Win
  • 如何在codeigniter中执行排序、搜索、分页

    我是 codeigniter 的新手 我想对我的表格进行搜索 排序和应用分页 我尽力了 当搜索代码工作时 排序可能不起作用 我无法在单个表中执行这三个操作 请帮我 use 引导数据表 它也有内置的搜索 排序和分页功能 我的代码示例 In V
  • 毕加索图像未在 Gridview Android 中加载

    我一直在制作一个电影应用程序 顺便说一句 用于在 udacity 上学习 android 的项目工作 我遇到了一些问题 但通过以下线程解决了这些问题无法修改 ListView 中的 ArrayAdapter UnsupportedOpera
  • IE9 自动保存对话框 (vba)

    我正在尝试从网站下载 Excel 工作表 到目前为止 我已经实现了 直到自动单击下载按钮 网络抓取 现在 ie9 会弹出另存为屏幕 我如何自动化它 你可以试试这个 因为它在 IE9 上对我有用 复制文件C Windows System32
  • 如何使用 Unity 的 xml 配置创建和填充 Dictionary

    如何使用 Unity 的 xml 配置创建和填充字典 我需要创建一个字典并使用统一的依赖项引用填充对象 我怎样才能做到这一点 这有效
  • 使用逻辑(布尔)表达式对 Pandas Dataframe 进行切片

    当我尝试使用逻辑表达式对 Pandas 数据框进行切片时 出现异常 我的数据具有以下形式 df GDP norm SP500 Index deflated norm Year 1980 2 121190 0 769400 1981 2 17
  • 访问 javascript 文件 .js 中的 C# 变量

    是否可以使用一些 C 变量创建一个 javascript 文件 像这样的东西 var foo 或者我是否必须在 usercontrol ascx 中创建它们 并将其包含在部分 您不能在 js 文件中包含此代码 因为它不是由 asp net
  • 每个线程或每个调用一个 ZeroMQ 套接字?

    众所周知 ZeroMQ套接字不得共享应用程序线程之间 context t但实例可以 我有一个多线程应用程序 我想让每个线程不时与一个线程交换消息REQ REP socket 对方 事件 异常等 取决于他们正在做什么 他们正在做非 ZeroM
  • 指针递增和赋值

    C 中以下两行 int a int calloc automata size sizeof int int b a 我发现a和b共享同一个地址 如果我们有的话 情况就不是这样了 int a int calloc automata size
  • Spring MVC 与休眠验证不起作用

    我在使用 Spring 进行休眠验证时遇到一些问题 我按照在线教程中的说明做了所有操作 但它不起作用 我只是转到下一页 没有验证错误 import javax validation constraints NotNull import ja
  • Lotus Notes 从文档中获取附件名称

    我正在为 Notes 8 5 2 开发一个 Lotus Notes 插件 用于将电子邮件中的附件保存到硬盘 但是 当我尝试从 Notes 文档中读取附件名称时 我总是得到包含第一个附件名称 一些垃圾数据的相同字符串 protected Ve
  • 如何从 MySQL 数据库中回显换行符?

    我创建了一个简单的墙贴功能 就像在 Facebook 上一样 用户撰写帖子 帖子被提交到数据库 然后回显到网站上 这一切都有效 唯一的问题是 当文本回显到网站上时 换行符却没有回显 所以 我输入 嘿 这是一个帖子 这是一个新段落 它显示为
  • iOS 中的 NSData 和通过 POST 上传图像

    我一直在梳理很多关于在 iOS 中通过 POST 上传图像的帖子 尽管有关此主题的信息很丰富 但我无法正确上传从 iPhone 模拟器照片库中获取的 JPEG 数据 数据一旦到达服务器 就只是一长串十六进制的数据 NSData 不应该只是一
  • 条件 (C) 中可能的分配

    我必须找到数字 a 是两位数的奇数 如果发生错误 include
  • React-Native: ''请从构建脚本中删除 `jcenter()` Maven 存储库的使用...''

    I m build my project after added react native image crop picker But i meet this error Could you please to show me the wa
  • 使用 ControlTemplate 时 ListView 忽略 DataTemplates

    我尝试实现一个多列ListView 一切都工作得很好 直到我尝试设置列表视图项的鼠标悬停和选择外观的样式 因此 我创建了一个 ControlTemplate 请参阅下面的 XAML 当我使用 ControlTemplate 时 列的 Dat
  • -Djava.library.path=... 相当于 System.setProperty("java.library.path", ...)

    我加载一个外部库 该库位于 lib 这两种设置 java library path 的解决方案是否等效 执行jar时在控制台设置路径 java Djava library path lib jar myApplication jar 在加载
  • 动态与对象相同

    在 CLR via C 一书中提到 FCL类型对应的dynamic关键字是System Object 请澄清这一点 It s not从 C 的角度来看 这完全是一样的 但是在编译的代码中 声明为类型的变量dynamic通常 可能总是 与 C
  • 没有互联网连接的同步适配器

    我有一个工作正常的同步适配器 它不需要互联网连接 因为它需要将地址簿与另一个本地存储 我的应用程序 同步 当 Wifi 关闭并且设备没有任何互联网连接时 Android 会在 帐户和同步 设置活动中禁用同步 即使连接关闭 有没有办法让同步适
  • 从列表中删除重复项和原始项

    给定一个字符串列表 我想删除重复项和原始单词 例如 lst a b c c c d e e 输出应该删除重复项 所以像这样 a b d 我不需要保留订单 Use a collections Counter object 然后仅保留那些计数为