input: Write a function to sort words in a given string by their length in decreasing alphabetical order.
  
  def sort_words_by_length_and_alphabet(my_string):
      words = my_string.split(' ') # split string into list of words 
      words_with_length = [(len(word), word) for word in words] 
      words_with_length.sort(reverse = True) 
      sorted_string = " ".join([i[1] for i in words_with_length]) 
      return sorted_string
  
  assert sort_words_by_length_and_alphabet("This is the string which is to be sorted") == "string which sorted This is the be to"
  assert sort_words_by_length_and_alphabet("I am happy") == "happy I am"
  assert sort_words_by_length_and_alphabet("coding is fun") == "coding fun is"
  assert sort_words_by_length_and_alphabet("short longword") == "longword short"
  assert sort_words_by_length_and_alphabet("") == ""
output: def sort_words_by_length_and_alphabet(my_string):
      words = my_string.split(' ')
      words_with_length = [(len(word), word) for word in words]
      words_with_length.sort(key=lambda x: (-x[0], x[1]))
      sorted_string = " ".join([i[1] for i in words_with_length])
      return sorted_string