# 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 elements 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 Code ` `List` `=` `[``23``, ``65``, ``19``, ``90``] ` ` `  `pos1, pos2  ``=` `1``, ``3` `print``(swapPositions(``List``, pos1``-``1``, pos2``-``1``)) `

Output:

`[19, 65, 23, 90]`

Approach #4 : Using comma assignment

 `# Python3 program to swap elements ` `# at given positions ` ` `  `def` `swapPositions(``list``, pos1, pos2): ` `    ``list``[pos1],``list``[pos2] ``=` `list``[pos2],``list``[pos1] ` `    ``return` `list` ` `  `# Driver Code ` `List` `=` `[``23``, ``65``, ``19``, ``90``] ` `pos1, pos2  ``=` `1``, ``3` `print``(swapPositions(``List``, pos1``-``1``, pos2``-``1``)) `

Output:

`[19, 65, 23, 90]`

My Personal Notes arrow_drop_up If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :
Practice Tags :

9

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.