为了账号安全,请及时绑定邮箱和手机立即绑定

如何在列表中查找重复项,但是在第一次出现时忽略它?

如何在列表中查找重复项,但是在第一次出现时忽略它?

守候你守候我 2021-03-29 21:10:10
我得到了一个40个单词的清单,这些清单是我从txt文件中提取出来的。我找到了重复项,并用相同的单词替换了它们,然后在前后添加了“ *”。代码如下:def show(self, list1):    a = [x for x in list1 if list1.count(x) > 1]    lista2 = ["*"+s+"*" if s in a else s for s in list1]    print(lista2)输入:> ['utanför', 'dörren', 'stod', 'en', 'man', 'och', 'lyssnade', 'intensivt', 'i', 'den', 'mörka', 'korridoren', 'han', 'hade', 'skuggat', 'digby', 'groat', 'hela', 'eftermiddagen', 'och', 'följt', 'efter', 'honom', 'in', 'i', 'huset', 'när', 'han', 'fick', 'hära', 'ljudet', 'av', 'fotsteg', 'från', 'rummet', 'smög', 'han', 'sig', 'in', 'i'] 输出:> ['utanför', 'dörren', 'stod', 'en', 'man', '*och*', 'lyssnade', 'intensivt', '*i*', 'den', 'mörka', 'korridoren', '*han*', 'hade', 'skuggat', 'digby', 'groat', 'hela', 'eftermiddagen', '*och*', 'följt', 'efter', 'honom', '*in*', '*i*', 'huset', 'när', '*han*', 'fick', 'hära', 'ljudet', 'av', 'fotsteg', 'från', 'rummet', 'smög', '*han*', 'sig', '*in*', '*i*']请注意,重复项在*前后都有。TL:DR我希望第一个重复项被忽略,其余的都用*前后突出显示。
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

def show(self, list1):

    new_list, seen = [], set()

    for x in list1:

        if x in seen:

            new_list.append('*{0}*'.format(x))

        else:

            new_list.append(x)

            seen.add(x)

    print new_list


查看完整回答
反对 回复 2021-04-02
  • 3 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号