w3resource

Python: Check whether it follows the sequence given in the patterns array


16. Check Whether a List Follows a Given Pattern

Write a Python program to check whether it follows the sequence given in the patterns array.

Pattern example:
For color1 = ["red", "green", "green"] and patterns = ["a", "b", "b"]
the output should be samePatterns(color1, patterns) = true;
For color2 = ["red", "green", "greenn"] and patterns = ["a", "b", "b"]
the output should be samePatterns (strings, color2) = false.

Sample Solution:

Python Code :

def is_samePatterns(colors, patterns):    
    if len(colors) != len(patterns):
        return False    
    sdict = {}
    pset = set()
    sset = set()    
    for i in range(len(patterns)):
        pset.add(patterns[i])
        sset.add(colors[i])
        if patterns[i] not in sdict.keys():
            sdict[patterns[i]] = []

        keys = sdict[patterns[i]]
        keys.append(colors[i])
        sdict[patterns[i]] = keys

    if len(pset) != len(sset):
        return False   

    for values in sdict.values():

        for i in range(len(values) - 1):
            if values[i] != values[i+1]:
                return False

    return True

print(is_samePatterns(["red", 
 "green", 
 "green"], ["a", 
 "b", 
 "b"])) 

print(is_samePatterns(["red", 
 "green", 
 "greenn"], ["a", 
 "b", 
 "b"])) 

Sample Output:

True
False

For more Practice: Solve these Related Problems:

  • Write a Python program to map elements of a list to a pattern list and return True if the mapping is one-to-one.
  • Write a Python program to implement a function that checks whether a list of strings matches a given sequence of pattern codes.
  • Write a Python program to use a dictionary to assign pattern letters to list elements and verify the pattern order.
  • Write a Python program to compare two lists (one with elements and one with pattern identifiers) and determine if the sequence pattern holds.

Go to:


Previous: Write a Python program to find the first duplicate element in a given array of integers. Return -1 If there are no such elements.
Next: Write a Python program to find a pair with highest product from a given array of integers.

Python Code Editor:

Contribute your code and comments through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.