# Python program to interchange first and last elements in a list

Given a list, write a Python program to swap first and last element of the list.

Examples:

```Input : [12, 35, 9, 56, 24]
Output : [24, 35, 9, 56, 12]

Input : [1, 2, 3]
Output : [3, 2, 1]```

Approach #1: Find the length of the list and simply swap the first element with (n-1)th element.

## Python3

 `# Python3 program to swap first` `# and last element of a list`   `# Swap function` `def` `swapList(newList):` `    ``size ``=` `len``(newList)` `    `  `    ``# Swapping ` `    ``temp ``=` `newList[``0``]` `    ``newList[``0``] ``=` `newList[size ``-` `1``]` `    ``newList[size ``-` `1``] ``=` `temp` `    `  `    ``return` `newList` `    `  `# Driver code` `newList ``=` `[``12``, ``35``, ``9``, ``56``, ``24``]`   `print``(swapList(newList))`

Output

```[24, 35, 9, 56, 12]
```

Approach #2: The last element of the list can be referred as list[-1]. Therefore, we can simply swap list[0] with list[-1].

## Python3

 `# Python3 program to swap first` `# and last element of a list`   `# Swap function` `def` `swapList(newList):` `    `  `    ``newList[``0``], newList[``-``1``] ``=` `newList[``-``1``], newList[``0``]`   `    ``return` `newList` `    `  `# Driver code` `newList ``=` `[``12``, ``35``, ``9``, ``56``, ``24``]` `print``(swapList(newList))`

Output

```[24, 35, 9, 56, 12]
```

Time Complexity: O(1)
Auxiliary Space: O(n), where n is length of list

Approach #3: Swap the first and last element is using tuple variable. Store the first and last element as a pair in a tuple variable, say get, and unpack those elements with first and last element in that list. Now, the First and last values in that list are swapped.

## Python3

 `# Python3 program to swap first` `# and last element of a list`   `# Swap function` `def` `swapList(``list``):` `    `  `    ``# Storing the first and last element ` `    ``# as a pair in a tuple variable get` `    ``get ``=` `list``[``-``1``], ``list``[``0``]` `    `  `    ``# unpacking those elements` `    ``list``[``0``], ``list``[``-``1``] ``=` `get` `    `  `    ``return` `list` `    `  `# Driver code` `newList ``=` `[``12``, ``35``, ``9``, ``56``, ``24``]` `print``(swapList(newList))`

Output

```[24, 35, 9, 56, 12]
```

Approach #4: Using * operand.
This operand proposes a change to iterable unpacking syntax, allowing to specify a “catch-all” name which will be assigned a list of all items not assigned to a “regular” name.

## Python3

 `# Python3 program to illustrate ` `# the usage of * operand` `list` `=` `[``1``, ``2``, ``3``, ``4``]`   `a, ``*``b, c ``=` `list`   `print``(a)` `print``(b)` `print``(c)`

Output

```1
[2, 3]
4
```

Now let’s see the implementation of above approach:

## Python3

 `# Python3 program to swap first` `# and last element of a list`   `# Swap function` `def` `swapList(``list``):` `    `  `    ``start, ``*``middle, end ``=` `list` `    ``list` `=` `[end, ``*``middle, start]` `    `  `    ``return` `list` `    `  `# Driver code` `newList ``=` `[``12``, ``35``, ``9``, ``56``, ``24``]`   `print``(swapList(newList))`

Output

```[24, 35, 9, 56, 12]
```

Approach #5: Swap the first and last elements is to use the inbuilt function list.pop(). Pop the first element and store it in a variable. Similarly, pop the last element and store it in another variable. Now insert the two popped element at each other’s original position.

## Python3

 `# Python3 program to swap first` `# and last element of a list`   `# Swap function` `def` `swapList(``list``):` `    `  `    ``first ``=` `list``.pop(``0``)   ` `    ``last ``=` `list``.pop(``-``1``)` `    `  `    ``list``.insert(``0``, last)  ` `    ``list``.append(first)   ` `    `  `    ``return` `list` `    `  `# Driver code` `newList ``=` `[``12``, ``35``, ``9``, ``56``, ``24``]`   `print``(swapList(newList))`

Output

```[24, 35, 9, 56, 12]
```

### Approach #6: Using slicing

In this approach, we first check if the list has at least 2 elements.
If the list has at least 2 elements, we swap the first and last elements using slicing by assigning the value of the last element to the first element and the value of the first element to the last element.
We then slice the list from the second element to the second-to-last element and concatenate it with a list containing the first element and the last element in their new positions.

## Python3

 `def` `swap_first_last_3(lst):` `    ``# Check if list has at least 2 elements` `    ``if` `len``(lst) >``=` `2``:` `        ``# Swap the first and last elements using slicing` `        ``lst ``=` `lst[``-``1``:] ``+` `lst[``1``:``-``1``] ``+` `lst[:``1``]` `    ``return` `lst`   `# Initializing the input` `inp``=``[``12``, ``35``, ``9``, ``56``, ``24``]`   `# Printing the original input` `print``(``"The original input is:"``,inp)`   `result``=``swap_first_last_3(inp)`   `# Printing the result` `print``(``"The output after swap first and last is:"``,result)`

Output

```The original input is: [12, 35, 9, 56, 24]
The output after swap first and last is: [24, 35, 9, 56, 12]
```

Time Complexity: O(1)
Space Complexity: O(1)

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next