# Remove the smallest element from the set, s. if the set is empty, it remains empty.

1 vote
1.2k views

## Problem :

I am not completely expert in Python, but still I am willing to learn good practices while I develop my skills.

I am trying to remove the high and low values from the list of numbers, I know how to do this , but I want to know the better way to do this.

`myrawlist = [1, 4, 0, 3, 2]`
`mysortedlist.sort() #[0, 1, 2, 3, 4]`
`mytrimmedlist = mylist[1:-1] #[1, 2, 3]`

I get the required output, but looking for the better way to do this.

## Solution :

Please find below the another way to do it :

`myrawlist = [1, 4, 0, 3, 2]`
`myrawlist.remove(max(mylist))`
`myrawlist.remove(min(mylist))`

It assumes that the high or low do not have any duplicates in the list.

This will need to do for 2-4 passes through the given list: two to find your max and min values, and another up to 2 to find your values to remove if at all they both happen to be at the end of the list. You could easily reduce this to one by just writing the Python loop to find the required max and min in a single pass and also remember that the index of each so that you can later delete the items by index after the loop.

38.6k points