String 从文本中删除重复的单词

String 从文本中删除重复的单词,string,duplicate-removal,String,Duplicate Removal,我有以下字符串的文本: {whatever}:::duplicateString:::{whatever} {whatever}:::duplicateString:::{whatever} .... {whatever}:::duplicateString:::{whatever} {whatever}:::duplicateString:::{whatever} 如何从文本中删除重复字符串:主要思想是,如果第二个单词出现多次,则将其从行中删除 第一个想法是逐行读取它们并按“:”分割,以便创

我有以下字符串的文本:

{whatever}:::duplicateString:::{whatever}
{whatever}:::duplicateString:::{whatever}
....
{whatever}:::duplicateString:::{whatever}
{whatever}:::duplicateString:::{whatever}

如何从文本中删除重复字符串:主要思想是,如果第二个单词出现多次,则将其从行中删除

第一个想法是逐行读取它们并按“”分割,以便创建数组并通过向树集添加条目来迭代数组。好。但是怎样才能把线重新粘起来呢

我想不起来有什么机制可以解决这样的问题。。语言不重要,只是解决方案

示例文本:

Appliances:::Main
Appliances:::Main:::Appliance Warranties
Appliances:::Main:::Beer Keg Refrigerators
Appliances:::Main:::Beverage Refrigerators
Appliances:::Main:::Ceiling Fans & Accessories
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Downrod Couplers
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Downrods
Appliances:::Main:::Ceiling Fans & Accessories:::Accessories:::Fan Replacement Blades
理想情况下,它必须如下所示:

Appliances:::Main
Appliances:::Appliance Warranties
Appliances:::Beer Keg Refrigerators
Appliances:::Beverage Refrigerators
Appliances:::Ceiling Fans & Accessories
Appliances:::Ceiling Fans & Accessories:::Accessories
Appliances:::Ceiling Fans & Accessories:::Accessories:::Downrod Couplers
Appliances:::Ceiling Fans & Accessories:::Accessories:::Downrods
Appliances:::Ceiling Fans & Accessories:::Accessories:::Fan Replacement Blades

如果duplicateString可能只作为第二个单词出现,您可以(在Python中)执行以下操作:


在duplicateString之前只有一个单词,但之后可以出现任何数量的单词,以“::”分隔。很难确定您在这里要查找的是什么。你能在前后显示你的字符串以便更清楚吗?所以在第一行你不想删除这个词。是的。只是复制了第二个单词,保存了剩余的行。如果单词只在第一行-没有重复=)我刚刚更新了我的答案,以反映如果单词与前一行相同,您希望删除该单词。我想你们需要一些变化。主要的想法是,如果第二个单词出现不止一次,就把它从行中删除
lastWord = None
for line in open('file.txt'):
  w = line.split(':::')
  thisWord = w[1]
  if lastWord==w[1]:
    del w[1]
  lastWord = thisWord
  print ':::'.join(w)