De derecha a izquierda y de izquierda a derecha bien impresas

Quiero que produzca el número al lado de una palabra para que pueda pedirle al usuario que seleccione la palabra usando el número correspondiente.

Este es mi codigo

alt_words = hlst
loopnum = 8
for i in range(loopnum):
        if i < len(alt_words):
            print('{0}. {1:<20}'.format((i+1), alt_words[i]), end =' ')
            if i == 0:
                print('', end=' ')
        if i + 9 <= len(alt_words):
            print('{0}. {1:<20}'.format((i+9), alt_words[i+8]), end =' ')
        if i + 17 <= len(alt_words):
            print('{0}.  {1:<20}'.format((i+17), alt_words[i+16]), end=' ')
        print('\n'+'-'*80)

Produce esto

El primer número de cada línea se imprime a la izquierda, pero la palabra a la derecha, mientras que el resto de los números y las palabras se imprimen RTL. Parece que una vez que Python ha comenzado a imprimir en una línea LTR, puede cambiar a RTL, pero no volver de RTL a LTR. Observe cómo incluso los puntos se imprimen a la derecha del número para el segundo conjunto de números en cada línea.

Funciona perfectamente bien y se ve bien con palabras en inglés:

Supongo que una solución podría implicar poner el número después de la palabra, pero creo que debe haber una mejor manera.

Respuestas a la pregunta(1)

Su respuesta a la pregunta