2017-07-31 97 views
1

我試圖不用zip列表打印連續的重複項,但我對這裏的元組結構有點困惑。如果它是一個簡單的列表,我會使用groupby或者像y [i]!= y [i-1]這樣簡單的東西,但這不起作用。我似乎也無法將它追加到我嘗試的列表中......我在這裏忽略了一些細節。刪除元組中的連續重複

和例如輸入是:

aa b aa aa b c 

它會給我:

aa b aa b c 

這裏是我到目前爲止的代碼:

如果
from __future__ import print_function 
import sys 

in_file = sys.argv[1] 

with open(in_file) as f: 
    do stuff not related to this question... 

for x in zip(*lis): 
    for y in x : 
     if y[i] != y[i-1]: 
      print(y+' ', end='') 
    print('\n') 

對不起這個問題是混亂的,隨時做出任何更改以幫助他人:-)

+0

你可以使用'itertools.groupby'。 –

+0

嗯......肯定有某個地方有一個蠢貨...... –

+0

這裏輸入的例子是什麼?一個列表或一個字符串? – Psidom

回答

1

試試這個,

from itertools import groupby 
a = "aa b aa aa b c" 
q = tuple(a.split()) #here q is tuple 
''.join([x for x,y in groupby(q)]) # use your tuple inside groupby 
+0

您不需要if條件。 –

+0

是的,你是正確的..更新謝謝 –

+0

看到這就是我所嘗試,但我仍然得到一個元組錯誤: – badner