nodes: 0, module; 1, function_definition; 2, function_name:natural_sorted; 3, parameters; 4, block; 5, identifier:iterable; 6, expression_statement; 7, function_definition; 8, expression_statement; 9, return_statement; 10, comment:"""Return human sorted list of strings.
  
      E.g. for sorting file names.
  
      >>> natural_sorted(['f1', 'f2', 'f10'])
      ['f1', 'f2', 'f10']
  
      """; 11, function_name:sortkey; 12, parameters; 13, block; 14, assignment; 15, call; 16, identifier:x; 17, return_statement; 18, identifier:numbers; 19, call; 20, identifier:sorted; 21, argument_list; 22, list_comprehension; 23, attribute; 24, argument_list; 25, identifier:iterable; 26, keyword_argument; 27, parenthesized_expression; 28, for_in_clause; 29, identifier:re; 30, identifier:compile; 31, string; 32, identifier:key; 33, identifier:sortkey; 34, conditional_expression:int(c) if c.isdigit() else c; 35, identifier:c; 36, call; 37, string_content:(\d+); 38, call; 39, call; 40, identifier:c; 41, attribute; 42, argument_list; 43, identifier:int; 44, argument_list; 45, attribute; 46, argument_list; 47, identifier:re; 48, identifier:split; 49, identifier:numbers; 50, identifier:x; 51, identifier:c; 52, identifier:c; 53, identifier:isdigit
code: def natural_sorted(iterable):
      """Return human sorted list of strings.
  
      E.g. for sorting file names.
  
      >>> natural_sorted(['f1', 'f2', 'f10'])
      ['f1', 'f2', 'f10']
  
      """
      def sortkey(x):
          return [(int(c) if c.isdigit() else c) for c in re.split(numbers, x)]
  
      numbers = re.compile(r'(\d+)')
      return sorted(iterable, key=sortkey)