使用python查找并删除文件中行中的重复单词

时间:2016-03-27 22:36:52

标签: python file python-3.x

我想删除按顺序分隔的第一个单词后面的额外单词“;”在每一行上只返回该序列的一个副本:

数据:

XTY1;XTY3;XTY3;XTY3;XTY2;XTY1;XTY1;XTY1
XTY3;XTY4;XTY4;XTY3;XTY2;XTY7;XTY7;XTY1
XTY10;XTY3;XTY4;XTY2;XTY2;XTY11;XTY11;XTY1

必需的输出:

XTY1;XTY3;XTY2;XTY1
XTY3;XTY4;XTY3;XTY2;XTY7;XTY1
XTY10;XTY3;XTY4;XTY2;XTY11

我的代码如下:

for line in cluster3_urls:
    list_of_words = line.split(',')
for i in list_of_words:
    next_word = list_of_words[list_of_words.index(i) + 1]
    if list_of_words == next_word:
        list_of_words=list_of_words
        print list_of_words

有人可以告诉我为什么我的代码不起作用吗?

3 个答案:

答案 0 :(得分:3)

您的代码有很多问题。考虑workflow New-AutomationVM { workflow Pre-DeploymentChecks { function Check-IP { return $true } function Check-Name { return $true } function Check-Role { return $false } $CheckResults = parallel { sequence { Check-IP Check-Name } Check-Role } ($CheckResults |Where-Object {-not $_}) -le 1 } workflow Deploy { Pre-DeploymentChecks } Deploy } New-AutomationVM

itertools.groupby

答案 1 :(得分:2)

我认为问题在于您是基于逗号而不是分号进行吐痰 尝试将行更改为

list_of_words = line.split(';')

答案 2 :(得分:0)

您的代码现在失败了,因为您正在拆分错误的分隔符。此外,一旦您解决了这个问题,当您到达最后一个单词时,您的代码将在from itertools import groupby input = 'XTYYY1;XTYYY3;XTYYY3;XTYYY3;XTYYY2;XTYYY1;XTYYY1;XTYYY1' output = ';'.join([k for k, g in groupby(input.split(';'))]) # output: 'XTYYY1;XTYYY3;XTYYY2;XTYYY1' 上失败。你的其余代码没有任何意义,你的if语句将数组与该数组的元素进行比较,然后将该箭头设置为自身(什么都不做)。我建议你完全重写你的代码。