首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在保留变量的同时删除Python列表中接近重复的元素

在保留变量的同时删除Python列表中接近重复的元素
EN

Stack Overflow用户
提问于 2013-03-25 05:09:19
回答 1查看 278关注 0票数 0

我有一个列表,其中包含几乎重复的元素,除了一个标识该元素的数字。我希望删除所有重复项,同时保留包含重复项的第一个元素的编号。

例如,我想用lnew替换l

代码语言:javascript
复制
l = ['iter1apple','iter2banana','iter3carrot','iter4apple','iter5orange','iter6banana','iter7mango']

lnew = ['iter1apple','iter2banana','iter3carrot','iter5orange','iter7mango']

我猜这与将数字从列表元素的其余部分拆分出来,将列表转换为set,并对拆分后的元素使用defaultdict有关,但我不知道是如何实现的。

如有任何建议,我们将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-25 05:30:09

如果我没有理解错的话,您希望丢弃以列表中已包含的一个元素结尾的项。在这种情况下,您可以使用正则表达式和列表来跟踪已使用的元素:

代码语言:javascript
复制
import re

l = ['iter1apple', 'iter2banana', 'iter3carrot', 'iter4apple', 'iter5orange', 'iter6banana', 'iter7mango']
duplicates = []
lnew = []
for item in l:
    match = re.match("^iter\d+(\w+)$", item)
    if match and not match.group(1) in duplicates:
        duplicates.append(match.group(1))
        lnew.append(item)

# lnew = ['iter1apple','iter2banana','iter3carrot','iter5orange','iter7mango']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15604040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档