nodes: 0, module; 1, function_definition; 2, function_name:MakePmfFromList; 3, parameters; 4, block; 5, identifier:t; 6, default_parameter; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, expression_statement; 11, expression_statement; 12, return_statement; 13, identifier:name; 14, string; 15, comment:"""Makes a PMF from an unsorted sequence of values.
  
      Args:
          t: sequence of numbers
          name: string name for this PMF
  
      Returns:
          Pmf object
      """; 16, assignment; 17, assignment; 18, assignment; 19, call; 20, identifier:pmf; 21, identifier:hist; 22, call; 23, identifier:d; 24, call; 25, identifier:pmf; 26, call; 27, attribute; 28, argument_list; 29, identifier:MakeHistFromList; 30, argument_list; 31, attribute; 32, argument_list; 33, identifier:Pmf; 34, argument_list; 35, identifier:pmf; 36, identifier:Normalize; 37, identifier:t; 38, identifier:hist; 39, identifier:GetDict; 40, identifier:d; 41, identifier:name
code: def MakePmfFromList(t, name=''):
      """Makes a PMF from an unsorted sequence of values.
  
      Args:
          t: sequence of numbers
          name: string name for this PMF
  
      Returns:
          Pmf object
      """
      hist = MakeHistFromList(t)
      d = hist.GetDict()
      pmf = Pmf(d, name)
      pmf.Normalize()
      return pmf