input: Write a function to generate a list of lists of words from a given list of strings, where the first inner list contains the first word of each string, the second inner list contains the first two words of each string, and so on. If a string has fewer words than the current position, it should be omitted from that inner list.
  
  def get_word_lists(strings):
      word_lists = []
      for string in strings:
          words = string.split(" ")
          for i in range(len(words)):
              if i >= len(word_lists):
                  word_lists.append([])
              word_lists[i].append(words[:i+1])
      return word_lists
  
  assert get_word_lists(["Hello world", "This is a test"]) == [[["Hello"], ["This"]], [["Hello", "world"], ["This", "is"]], [["Hello", "world", ""], ["This", "is", "a"]], [["Hello", "world", "", ""], ["This", "is", "a", "test"]]]
  assert get_word_lists(["Hello"]) == [[["Hello"]]]
  assert get_word_lists([]) == []
output: def get_word_lists(strings):
      word_lists = []
      for string in strings:
          words = string.split()
          for i in range(len(words)):
              if i >= len(word_lists):
                  word_lists.append([])
              if len(words) > i:
                  word_lists[i].append(words[:i+1])
      return word_lists