nodes: 0, module; 1, function_definition; 2, function_name:humansort; 3, parameters; 4, block; 5, identifier:l; 6, expression_statement; 7, import_statement; 8, function_definition; 9, expression_statement; 10, return_statement; 11, comment:"""Sort in place a given list the way humans expect.
  
      E.g. ['file11', 'file1'] -> ['file1', 'file11']
      """; 12, dotted_name; 13, function_name:alphanum_key; 14, parameters; 15, comment:# Turn a string into a list of string and number chunks.; 16, comment:# e.g. "z23a" -> ["z", 23, "a"]; 17, block; 18, call; 19, None; 20, identifier:re; 21, identifier:s; 22, function_definition; 23, return_statement; 24, attribute; 25, argument_list; 26, function_name:tryint; 27, parameters; 28, block; 29, list_comprehension; 30, identifier:l; 31, identifier:sort; 32, keyword_argument; 33, identifier:s; 34, if_statement; 35, return_statement; 36, call; 37, for_in_clause; 38, identifier:key; 39, identifier:alphanum_key; 40, call; 41, block; 42, identifier:s; 43, identifier:tryint; 44, argument_list; 45, identifier:c; 46, call; 47, attribute; 48, argument_list; 49, return_statement; 50, identifier:c; 51, attribute; 52, argument_list; 53, identifier:s; 54, identifier:isdigit; 55, call; 56, identifier:re; 57, identifier:split; 58, string:"([0-9]+)"; 59, identifier:s; 60, identifier:int; 61, argument_list; 62, identifier:s
code: def humansort(l):
      """Sort in place a given list the way humans expect.
  
      E.g. ['file11', 'file1'] -> ['file1', 'file11']
      """
      import re
  
      def alphanum_key(s):
          # Turn a string into a list of string and number chunks.
          # e.g. "z23a" -> ["z", 23, "a"]
          def tryint(s):
              if s.isdigit():
                  return int(s)
              return s
  
          return [tryint(c) for c in re.split("([0-9]+)", s)]
  
      l.sort(key=alphanum_key)
      return None