def quick_sort(nums, left=None, right=None):
def _partition(nums, left, right, pivot_idx):
pivot = nums[pivot_idx]
nums[pivot_idx], nums[right] = nums[right], nums[pivot_idx]
tmp_idx = left
for idx in range(left, right):
if nums[idx] <= pivot:
nums[tmp_idx], nums[idx] = nums[idx], nums[tmp_idx]
tmp_idx += 1
nums[tmp_idx], nums[right] = nums[right], nums[tmp_idx]
return tmp_idx
if left is None:
left = 0
if right is None:
right = len(nums)-1
if left >= right:
return
new_pivot_idx = _partition(nums, left, right, left)
quick_sort(nums, left, new_pivot_idx-1)
quick_sort(nums, new_pivot_idx+1, right)
# inputs = input()
# inputs = [int(c) for c in inputs.split()]
inputs = [3, 5, 1, 2, 6, 4, 7]
quick_sort(inputs)
print(inputs)

Hubert's Coding Notes
Useful notes for CS people