Эти строки работают:
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('foo', nargs='+', type=lambda x:x.split('/'))
parser.parse_args(['3/5', '4/6']) # output Namespace(foo=[['3', '5'], ['4', '6']])
Но следующее не работает.Зачем?
Единственное отличие состоит в том, что на этот раз кастер типов использует понимание списка для преобразования строк в целые числа.
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('foo', nargs='+', type=lambda x:[[int(a), int(b)] for a,b in x.split('/')])
parser.parse_args(['3/5', '4/6']) # Raise error: argument foo: invalid <lambda> value: '3/5'