Trying to remove specific values from a list in Python

    FCF_margin2017 = 3.3
    FCF_margin2018 = 1.5
    FCF_margin2019 = 2.3
    FCF_margin2020 = 30
    fcf_margin_list = FCF_margin2017, FCF_margin2018, FCF_margin2019, FCF_margin2020
    sorted_fcf_margin_list = sorted(fcf_margin_list)
    value1 = sorted_fcf_margin_list[0]
    value2 = sorted_fcf_margin_list[1]
    value3 = sorted_fcf_margin_list[2]
    value4 = sorted_fcf_margin_list[3]
    value_list = value1, value2, value3, value4
    median_list = value2, value3
    median = sum(median_list)/2
    mean = sum(value_list)/2
    upper = median+mean 
    lower = median-mean
    def CheckForLess(fcf_margin_list, val): 
      for x in fcf_margin_list:
       if val <= lower: 
        if (CheckForLess(fcf_margin, val)): fcf_margin_list.remove()
        for x in fcf_margin_list:
         if val >= upper: 
          if (CheckForLess(fcf_margin, val)): fcf_margin_list.remove()


This code currently returns:

(3.3, 1.5, 2.3, 30)

This is same as the original list, when I was trying to remove values in the list greater than upper and less than lower. How can I go about removing values from the list fcf_margin_list given that they meet my specified requirements?


I would probably create a new list containing just the items I want.

new_list = [item for item in original_list if item >= lower and item <= upper]

I could always replace the original list with the new list if I wished to do so,

original_list = new_list