Python program to swap two elements in a list
Given a list in Python and provided the positions of the elements, write a program to swap the two elements in the list.
Examples:
Input : List = [23, 65, 19, 90], pos1 = 1, pos2 = 3 Output : [19, 65, 23, 90] Input : List = [1, 2, 3, 4, 5], pos1 = 2, pos2 = 5 Output : [1, 5, 3, 4, 2]
Approach #1: Simple swap
Since the positions of the elements are known, we can simply swap the positions of the elements.
# Python3 program to swap elements # at given positions # Swap function def swapPositions( list , pos1, pos2): list [pos1], list [pos2] = list [pos2], list [pos1] return list # Driver function List = [ 23 , 65 , 19 , 90 ] pos1, pos2 = 1 , 3 print (swapPositions( List , pos1 - 1 , pos2 - 1 )) |
Output:
[19, 65, 23, 90]
Approach #2 : Using Inbuilt list.pop()
function
Pop the element at pos1 and store it in a variable. Similarly, pop the element at pos2 and store it in another variable. Now insert the two popped element at each other’s original position.
# Python3 program to swap elements # at given positions # Swap function def swapPositions( list , pos1, pos2): # popping both the elements from list first_ele = list .pop(pos1) second_ele = list .pop(pos2 - 1 ) # inserting in each others positions list .insert(pos1, second_ele) list .insert(pos2, first_ele) return list # Driver function List = [ 23 , 65 , 19 , 90 ] pos1, pos2 = 1 , 3 print (swapPositions( List , pos1 - 1 , pos2 - 1 )) |
Output:
[19, 65, 23, 90]
Approach #3 : Using tuple variable
Store the element at pos1 and pos2 as a pair in a tuple variable, say get. Unpack those elements with pos2 and pos1 positions in that list. Now, both the positions in that list are swapped.
# Python3 program to swap elpositions at given positions # Swap function def swapPositions( list , pos1, pos2): # Storing the two elements # as a pair in a tuple variable get get = list [pos1], list [pos2] # unpacking those elements list [pos2], list [pos1] = get return list # Driver function List = [ 23 , 65 , 19 , 90 ] pos1, pos2 = 1 , 3 print (swapPositions( List , pos1 - 1 , pos2 - 1 )) |
Output:
[19, 65, 23, 90]