Is my implementation of quicksort alorithm,, efficient, inplace, pythonic, portable ??

    def quicksort(array, lo, hi):
        if hi-lo < 2:
            return
        key = random.randrange(lo, hi)
        array[key], array[lo] = array[lo], array[key]
        y = 1 + lo
        for x in xrange(lo+1, hi):
            if array[x] <= array[lo]:
                array[x], array[y] = array[y], array[x]
                y += 1
        array[lo], array[y-1] = array[y-1], array[lo]
        quicksort(array, lo, y-1)
        quicksort(array, y, hi)


    a = map(int, raw_input().split())
    quicksort(a, 0, len(a))