2016-03-27 83 views
-3

我想刪除以「;」分隔的第一個單詞後面的多餘單詞,在每一行,並只返回一個sequnce的副本線路:使用python查找和刪除文件中行中的重複單詞

數據:

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 

有人可以讓我知道爲什麼我的代碼不起作用嗎?

+0

你爲什麼要拆分的'「‘',而不是'’;」'? – TigerhawkT3

+0

示例中最後一個單詞的解釋是什麼? –

+0

道歉。我打算分裂「;」 – user27976

回答

3

你的代碼有許多錯誤。考慮itertools.groupby

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' 
+0

非常感謝您的幫助和時間。你的解決方案適合我。 – user27976

0

您的代碼現在失敗,因爲你是在錯誤的分隔符分裂。另外,一旦你解決了這個問題,你的代碼在next_word = list_of_words[list_of_words.index(i) + 1]上也會失敗。剩下的代碼就沒有意義了,用你的if語句比較一個數組和一個該數組的元素,然後將該箭頭設置爲自己(無所事事)。我建議你完全重寫你的代碼。

2

我認爲問題是,你是基於對吐涎逗號而不是分號 嘗試改變線

list_of_words = line.split(';') 
相關問題