In this kata you are given an array to sort but you're expected to start sorting from a specific position of the array (in ascending order) and optionally you're given the number of items to sort.

#### Examples:

```python
sect_sort([1, 2, 5, 7, 4, 6, 3, 9, 8], 2) //=> [1, 2, 3, 4, 5, 6, 7, 8, 9]
sect_sort([9, 7, 4, 2, 5, 3, 1, 8, 6], 2, 5) //=> [9, 7, 1, 2, 3, 4, 5, 8, 6]
```

#### Documentation:

```python
sect_sort(array, start, length);
```

- array - array to sort
- start - position to begin sorting
- length - number of items to sort (optional)

if the **length** argument is not passed or is zero, you sort all items to the right of the start postiton in the array

Source: codewars | Difficulty: EASY
Tags: Sorting

Data structures

Starter code: def sect_sort(lst, start, length=0):
	

Solutions:
def sect_sort(lst, start, length=0):
	end = start + length if length else len(lst)
	return lst[:start] + sorted(lst[start:end]) + lst[end:]


def sect_sort(arr, start, num=0):
	out = arr[:]
	s = slice(start, None if not num else start + num)
	out[s] = sorted(out[s])
	return out


def sect_sort(arr, st, ln=0):
	return arr[:st] + (sorted(arr[st:st + ln]) + arr[st + ln:] if ln else sorted(arr[st:]))


def sect_sort(array, start, length=-1):
	if length == -1:
		length = len(array) - start
	if length == 0:
		length = 1
	return array[0:start] + sorted(array[start:start + length]) + array[start + length:]


def sect_sort(a, b=0, c=0):
	c = len(a) if not c else b + c
	return a[:b] + sorted(a[b:c]) + a[c:]


def sect_sort(array, start, end=0):
	e = start + end if end else None
	array[start:e] = sorted(array[start:e])
	return array


def sect_sort(a, s, l=None):
	if l:
		return a[:s] + sorted(a[s:s + l]) + a[s + l:]
	return a[:s] + sorted(a[s:])


def sect_sort(l, ind, n=-1):
	if n > 0:
		s = sorted(l[ind:ind + n])
		return l[0:ind] + s + l[ind + n:]
	else:
		s = sorted(l[ind:])
		return l[0:ind] + s


sect_sort = lambda arr, s, l=None: (lambda l: arr[:s] + sorted(arr[s:s + l]) + arr[s + l:])(len(arr) if not l else l)


def sect_sort(*args):
	if len(args) == 2:
		(lst, start) = args
		res = lst[:start] + sorted(lst[start:])
	else:
		(lst, start, size) = args
		if size == 0:
			res = lst[:start] + sorted(lst[start:])
		else:
			res = lst[:start] + sorted(lst[start:start + size]) + lst[start + size:]
	return res