python - 删除列表中的后续重复项
问题描述
我有以下清单。
['AAB', 'CAA', 'ADA', 'CADA', 'AACA']
我想得到
['AB', 'CA', 'AD', 'CAD', 'AC']
出局的顺序很重要。
解决方案
没有OrderedDict
和使用set
也保持输出的顺序。
x = ['AAB', 'CAA', 'ADA', 'CADA', 'AACA']
["".join([z.add(c) or c for c in w if c not in z]) for w, z in [(w, set()) for w in x]]
输出:
['AB', 'CA', 'AD', 'CAD', 'AC']
列表推导实际上为每个单词填充了一个集合,因此复杂度不会增加。
推荐阅读
- java - 当操作可能产生额外的任务以在同一个线程池上并行运行时避免并行处理中的死锁
- javascript - 打字稿:使用对象并使用 for...in
- java - 如何使用多个 if 条件重构我的 java 代码
- python - 如何将列表列表中的字符串转换为原地浮动?
- swift - 不使用 draw(_ updateRect: NSRect) 函数直接在 NSView 中绘图
- c# - 如何在 WPF 应用程序中渲染 HeroCard
- javascript - Leetcode 104 二叉树的最大深度
- arrays - MongoDB 根据之前的元素删除元素(迭代)
- swift - 如何重写代码以摆脱 Swift 中的重复代码?
- android - “在 [location] 找到的 adb 二进制文件已过时并且存在严重的性能问题”但模拟器运行!显示消息后