title: Python: Removing an Item From a List, But Returns a New List
body: <p>Is there anyway to remove an item from a list in such a way that I return a new list without the removed element?</p>
  <p>For instance,
  if I have a list <code>['a','b','c','d','e']</code> (called my_list), then I would like a method that does the following <code>my_list.newRemove('a')</code> = <code>['b','c','d','e']</code>.</p>
  <p>I want to do this in such a way that I could send the element to be removed and the new list as parameters of a function:</p>
  <pre><code>func(element, my_list.newRemove(element))
  </code></pre>
  <p>for example:</p>
  <pre><code>func('a', list.newRemove('a'))
  </code></pre>
  <p>which would pass <code>'a'</code> AND <code>['b','c','d','e']</code></p>
  <p>I know I can do this by just passing the element and the entire list to the function, and then creating a new subList in the function without the passed element. However, I feel like it would look better to do it the way I'm asking.</p>
  <p>Is this just a fundamentally un-pythonic way of doing this? I learned to program with functional languages, and old habits die hard.</p>
  <hr />
  <p>Edit: mistakenly wrote set rather than list</p>
  <p>Edit 2: Here is an example of what I ultimately want to do:</p>
  <pre><code>myList = ['a','b','c','d']
  
  for element in myList:
      function(element, myList.newRemove(element)
  </code></pre>
  <p>Where function does a calculation between the element and the rest of the elements in the list.</p>