Given an array and a range **[lowVal, highVal]**, partition the array around the range such that array is divided in three parts.

1) All elements smaller than **lowVal** come first.

2) All elements in range **lowVal to highVal** come next.

3) All elements greater than **highVal** appear in the end.

The individual elements of three sets can appear in any order.

Examples:

Input: arr = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32] lowVal = 14, highVal = 20 Output: arr = [1, 5, 4, 2, 3, 1, 14, 20, 20, 54, 87, 98, 32] Input: arr = [1, 14, 5, 20, 4, 2, 54, 20, 87, 98, 3, 1, 32] lowVal = 20, highVal = 20 Output: arr = [1, 14, 5, 4, 2, 3, 1, 20, 20, 54, 87, 98, 32]

We have existing solution for this problem please refer Three way partitioning of an array around a given range link. We can solve this problem quickly in python using List Comprehension. Approach is simple,

- Separate list in three parts, first one will contain elements less than
**lowVal**, second will contain elements between**lowVal**and**highVal**, third will contain elements greater than**highVal**. - Concatenate all three parts together.

`# Function for Three way partitioning of an` `# array around a given range` ` ` `def` `threeWay(` `input` `, lowVal, highVal):` ` ` `# separate input list in three parts` ` ` `first ` `=` `[ num ` `for` `num ` `in` `input` `if` `num<lowVal ]` ` ` `second ` `=` `[ num ` `for` `num ` `in` `input` `if` `(num>` `=` `lowVal ` `and` `num<` `=` `highVal) ]` ` ` `third ` `=` `[ num ` `for` `num ` `in` `input` `if` `num>highVal ]` ` ` `# concatenate all three parts` ` ` `print` `(first ` `+` `second ` `+` `third)` ` ` `# Driver program` `if` `__name__ ` `=` `=` `"__main__"` `:` ` ` `input` `=` `[` `1` `, ` `14` `, ` `5` `, ` `20` `, ` `4` `, ` `2` `, ` `54` `, ` `20` `, ` `87` `, ` `98` `, ` `3` `, ` `1` `, ` `32` `]` ` ` `lowVal ` `=` `14` ` ` `highVal ` `=` `20` ` ` `threeWay(` `input` `, lowVal, highVal)` |

Output:

[1, 5, 4, 2, 3, 1, 14, 20, 20, 54, 87, 98, 32]

Attention geek! Strengthen your foundations with the **Python Programming Foundation** Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the **Python DS** Course. And to begin with your Machine Learning Journey, join the **Machine Learning – Basic Level Course**