Skip to content
Related Articles

Related Articles

Python – Filter consecutive elements Tuples

Improve Article
Save Article
Like Article
  • Last Updated : 02 Sep, 2020

Given a Tuple list, filter tuples which are made from consecutive elements, i.e diff is 1.

Input : test_list = [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 4), (6, 4, 6, 3)]
Output : [(3, 4, 5, 6)]
Explanation : Only 1 tuple adhers to condition.

Input : test_list = [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 3), (6, 4, 6, 3)]
Output : [(3, 4, 5, 6), (1, 2, 3)]
Explanation : Only 2 tuples adher to condition.

Method #1 : Using loop

In this, for each tuple, we call consecutive elements utility which returns True if tuple is consecutive.

Python3




# Python3 code to demonstrate working of 
# Filter consecutive elements Tuples
# Using loop
  
# hlpr_func 
def consec_check(tup):
    for idx in range(len(tup) - 1):
          
        # returns false if any element is not consec.
        if tup[idx + 1] != tup[idx] + 1:
            return False 
              
    return True 
  
# initializing list
test_list = [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 3), (6, 4, 6, 3)]
  
# printing original list
print("The original list is : " + str(test_list))
  
res = []
for sub in test_list:
      
    # calls fnc to check consec.
    if consec_check(sub):
        res.append(sub)
  
# printing result 
print("The filtered tuples : " + str(res))
Output
The original list is : [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 3), (6, 4, 6, 3)]
The filtered tuples : [(3, 4, 5, 6), (1, 2, 3)]

Method #2 : Using list comprehension

In this, we performs similar function as in above, just in one-liner shorthand using list comprehension.

Python3




# Python3 code to demonstrate working of 
# Filter consecutive elements Tuples
# Using list comprehension
  
# hlpr_func 
def consec_check(tup):
    for idx in range(len(tup) - 1):
          
        # returns false if any element is not consec.
        if tup[idx + 1] != tup[idx] + 1:
            return False 
              
    return True 
  
# initializing list
test_list = [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 3), (6, 4, 6, 3)]
  
# printing original list
print("The original list is : " + str(test_list))
  
# one-liner to solve problem, using list comprehension
res = [sub for sub in test_list if consec_check(sub)]
  
# printing result 
print("The filtered tuples : " + str(res))
Output
The original list is : [(3, 4, 5, 6), (5, 6, 7, 2), (1, 2, 3), (6, 4, 6, 3)]
The filtered tuples : [(3, 4, 5, 6), (1, 2, 3)]

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!