title: TypeError; Must use key word argument or key function in python 3.x
body: <p>I am new to python, trying to port a script in 2.x to 3.x i am encountering the error TypeError; Must use key word argument or key function in python 3.x. Below is the piece of code: Please help</p>
  
  <pre><code>def resort_working_array( self, chosen_values_arr, num ):
      for item in self.__working_arr[num]:
          data_node = self.__pairs.get_node_info( item )
  
          new_combs = []
          for i in range(0, self.__n):
              # numbers of new combinations to be created if this item is appended to array
              new_combs.append( set([pairs_storage.key(z) for z in xuniqueCombinations( chosen_values_arr+[item], i+1)]) - self.__pairs.get_combs()[i] )
          # weighting the node
          item.weights =  [ -len(new_combs[-1]) ]    # node that creates most of new pairs is the best
          item.weights += [ len(data_node.out) ] # less used outbound connections most likely to produce more new pairs while search continues
          item.weights += [ len(x) for x in reversed(new_combs[:-1])]
          item.weights += [ -data_node.counter ]  # less used node is better
          item.weights += [ -len(data_node.in_) ] # otherwise we will prefer node with most of free inbound connections; somehow it works out better ;)
  
      self.__working_arr[num].sort( key = lambda a,b: cmp(a.weights, b.weights) )
  </code></pre>