In the previous article, we have discussed Python Program to Replace Every List Element by Multiplication of Previous and Next
Given a random list of 0s and 1s and the task is to separate the list into 0s on the left and 1s on the right. Only traverse the list once.
Examples:
Example1:
Input:
Given List = [0, 0, 1, 1, 0, 1, 1, 1, 1, 0]
Output:
The above given list after separation of 0s on the left and 1s on the right: 0 0 0 0 1 1 1 1 1 1
Example2:
Input:
Given List = [1 0 1 0 0 0 1 1 0 1]
Output:
The above given list after separation of 0s on the left and 1s on the right: 0 0 0 0 0 1 1 1 1 1
Program to Sort a List Containing Two Types of Elements in Python
Below are the ways to separate the given list into 0s on the left and 1s on the right.
Method #1: Using While Loop (Static Input)
Approach:
- Give the list as static input and store it in a variable.
- Calculate the length of the given list using the len() function and store it in another variable.
- Take a variable say ‘p’ and initialize its value with 0.
- Take another variable ‘q’ and initialize its value with the length of the given list -1.
- Store it in another variable.
- Check if the value of p is less than q using the while loop.
- If the statement is true, check again if the value of the given list of p is equal to 1 using the if conditional statement.
- If the statement is true, then assign a given list of p with the given list of q and a given list of q with the given list of p.
- Decrement the value of q by 1 and store it in the same variable ‘q’
- Else increment the value of p by 1 and store it in the same variable ‘p’.
- Exit the while Loop.
- Loop from 0 to the length of the given list using the for loop.
- Inside the loop, print the given list of iterator values.
- The Exit of the Program.
Below is the implementation:
# Give the list as static input and store it in a variable.
givn_lst = [0, 0, 1, 1, 0, 1, 1, 1, 1, 0]
# Calculate the length of the given list using the len() function and store it in
# another variable.
lent_lst = len(givn_lst)
# Take a variable say 'p' and initialize its value with 0.
p = 0
# Take another variable 'q' and initialize its value with the length of the given list -1.
# Store it in another variable.
q = lent_lst - 1
# Check if the value of p is less than q using the while loop.
while (p < q):
# If the statement is true, check again if the value of the given list of p is equal
# to 1 using the if conditional statement.
if(givn_lst[p] == 1):
# If the statement is true, then assign a given list of p with the given list of q and
# a given list of q with the given list of p.
givn_lst[p], givn_lst[q] = givn_lst[q], givn_lst[p]
# Decrement the value of q by 1 and store it in the same variable 'q
q -= 1
# Else increment the value of p by 1 and store it in the same variable 'p'.
# Exit the while Loop.
else:
p += 1
print("The above given list after separation of 0s on the left and 1s on the right:")
# Loop from 0 to the length of the given list using the for loop.
for itror in range(0, lent_lst):
# Inside the loop, print the given list of iterator values.
print(givn_lst[itror], end=" ")
Output:
The above given list after separation of 0s on the left and 1s on the right: 0 0 0 0 1 1 1 1 1 1
Method #2: Using While loop (User Input)
Approach:
- Give the list as user input using list(),map(),input(),and split() functions.
- Store it in a variable.
- Calculate the length of the given list using the len() function and store it in another variable.
- Take a variable say ‘p’ and initialize its value with 0.
- Take another variable ‘q’ and initialize its value with the length of the given list -1.
- Store it in another variable.
- Check if the value of p is less than q using the while loop.
- If the statement is true, check again if the value of the given list of p is equal to 1 using the if conditional statement.
- If the statement is true, then assign a given list of p with the given list of q and a given list of q with the given list of p.
- Decrement the value of q by 1 and store it in the same variable ‘q’
- Else increment the value of p by 1 and store it in the same variable ‘p’.
- Exit the while Loop.
- Loop from 0 to the length of the given list using the for loop.
- Inside the loop, print the given list of iterator values.
- The Exit of the Program.
Below is the implementation:
# Give the list as user input using list(),map(),input(),and split() functions.
# Store it in a variable.
givn_lst = list(map(int, input(
'Enter some random List Elements separated by spaces = ').split()))
# Calculate the length of the given list using the len() function and store it in
# another variable.
lent_lst = len(givn_lst)
# Take a variable say 'p' and initialize its value with 0.
p = 0
# Take another variable 'q' and initialize its value with the length of the given list -1.
# Store it in another variable.
q = lent_lst - 1
# Check if the value of p is less than q using the while loop.
while (p < q):
# If the statement is true, check again if the value of the given list of p is equal
# to 1 using the if conditional statement.
if(givn_lst[p] == 1):
# If the statement is true, then assign a given list of p with the given list of q and
# a given list of q with the given list of p.
givn_lst[p], givn_lst[q] = givn_lst[q], givn_lst[p]
# Decrement the value of q by 1 and store it in the same variable 'q
q -= 1
# Else increment the value of p by 1 and store it in the same variable 'p'.
# Exit the while Loop.
else:
p += 1
print("The above given list after separation of 0s on the left and 1s on the right:")
# Loop from 0 to the length of the given list using the for loop.
for itror in range(0, lent_lst):
# Inside the loop, print the given list of iterator values.
print(givn_lst[itror], end=" ")
Output:
Enter some random List Elements separated by spaces = 1 0 1 0 0 0 1 1 0 1 The above given list after separation of 0s on the left and 1s on the right: 0 0 0 0 0 1 1 1 1 1
Explore more instances related to python concepts from Python Programming Examples Guide and get promoted from beginner to professional programmer level in Python Programming Language.
