python - Can lambda be used instead of a method, as a key in sorted()? -
this first time asking question. i've got without asking. (gratitude face). so, found useful piece of code around here few weeks ago.
import re  def yearly_sort(value):     numbers = re.compile(r'(\d+)')     parts = numbers.split(value)     parts[1::2] = map(int, parts[1::2])     return parts   it works here:
def get_files_sorted(path_to_dir):    file_names = []    root, dirs, files in os.walk(path_to_dir):       file_name in sorted(files, key=yearly_sort):          file_names.append(os.path.join(root, file_name))    return file_names   now, i'm facing problem describing above function (as can see non-descriptive method name).
what should name of above method (instead of some_sort())?
can method squeezed somehow in lambda such key in sorted() can bind key=lambda?
you squeeze lambda provided numbers compiled (which increases performance)
numbers = re.compile(r'(\d+)') file_name in sorted(files, key=lambda value : [int(x) if x.isdigit() else 0 x in numbers.split(value)][1::2]):   in case, unnecessary test items #0 , #3 onwards. maybe better, that's risk complex lambdas: performance & lisibility can suffer.
Comments
Post a Comment