>>> c = ((0,1),(2,3)) >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((0,),x))] [(0, 1)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((0,1),x))] [(0, 1)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((2,),x))] [(2, 3)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((2,3),x))] [(2, 3)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((4,),x))] []
With big tuple
>>> c=((0,1,2,3),(2,3,4,5)) >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((0,1),x))] [(0, 1, 2, 3)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((0,2),x))] [] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((2,),x))] [(2, 3, 4, 5)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((2,3,4),x))] [(2, 3, 4, 5)] >>> [x for x in c if all(1 if len(set(y)) is 1 else 0 for y in zip((4,),x))] [] >>>
Edit : will be more compact
>>> [x for x in c if all(len(set(y))==1 for y in zip((0,),x))] [(0, 1, 2, 3)]