How would I make this bubble sort more pythonic?
One approach is to move most of the logic into a helper function that does the
swapping and returns the N of swaps. The outer part of the algorithm then
reduces to almost nothing.
While you're at it: (1) use conventional names for Python variables (lowercase
for variables, capitalized for classes, uppercase for constants); (2) let your
operators breathe for readability, (3) take full advantage of enumerate(),
which gives both index and value (x1), (4) use convenience variables to make
code more readable (x2 rather that repeated uses of xs[i + 1]); (5)
look for ways to pick simple variable names that help the reader understand the
algorithm (i for an index; xs for a list of values; x1 and x2 for
individual values that are being swapped) rather than purely abstract variable
names that convey nothing substantive to the reader (List, x for an
index, and y for a value); and (6) put your sort in a proper function.
def bubble_sort(xs):
    while bubble(xs):
        pass

def bubble(xs):
    n_swaps = 0
    for i, x1 in enumerate(xs[:-1]):
        x2 = xs[i + 1]
        if x1 &gt; x2:
            xs[i] , xs[i + 1] = x2, x1
            n_swaps += 1
    return n_swaps

vals = [9, 3, 4, 2, 6, 8, 10, 1]
bubble_sort(vals)
print(vals)