2017-07-31 152 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