gpt4 book ai didi

python - 如何在删除重复后维护字符串列表的索引?

转载 作者:太空宇宙 更新时间:2023-11-04 04:25:51 25 4
gpt4 key购买 nike

我有一个包含字符串的列表。这些字符串不一样。但是,在我这样做之后

alist = ['string1','string2'] #list of string
processed_alist = [some_function(s) for s in alist] #processing strings

processed_alist 中有一些重复项,我想删除它们。如果我这样做

processed_alist = list(set(processed_alist))

所有字符串索引都必须打乱,我无法检查 alist 中的哪个字符串与 processed_alist 中的字符串匹配。

有什么方法可以在 processed_alist 中维护字符串索引,但我仍然可以删除重复的字符串?

例如,

我有

alist = ['sta','tsb','sat','tsa','tsd','stb']

some_function(s) 返回删除了字符 s 的字符串。因此,processed_alist 将是

['ta','tb','at','ta','td','tb']

删除重复后变成

['ta','tb','at','td']

我想删除 processed_alist 中的重复项,但同时我想获取已处理字符串的原始字符串。假设函数名称是 get_original。所以,如果我写

get_original(processed_alist[3])
#return 'tsd' because original string from 'td' is 'tsd'
get_original(processed_alist[0])
#return 'sta' or 'tsa'. I don't mind which one

最佳答案

最简单的方法是使用 OrderedDict:

>>> from collections import OrderedDict
>>> processed_alist = ['not a dupe', 'still not a dupe', 'i am dupe!', 'i am dupe!', 'err not a dupe']
>>> list(OrderedDict.fromkeys(processed_alist))
['not a dupe', 'still not a dupe', 'i am dupe!', 'err not a dupe']

关于python - 如何在删除重复后维护字符串列表的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53514068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com