#    [1, 2, 3, 4, 5, 6]
# -> [2, 1, 4, 3, 6, 5]

X = [1, 2, 3, 4, 5, 6]

print('Løsning 1')

Y = []
i = 0
while i < len(X):
#    print('Y =', Y)
#    if i % 2 != 0:  # i er lige
    if i % 2:  # i er lige
        Y.append(X[i - 1])
    else:
        Y.append(X[i + 1])
    i += 1
print(Y)

print('Løsning 2')

Y = []
#for i in range(0, len(X)):
for i in range(len(X)):
#    print('Y =', Y)
#    if i % 2 != 0:  # i er lige
    if i % 2:  # i er lige
        Y.append(X[i - 1])
    else:
        Y.append(X[i + 1])
print(Y)

print('Løsning 3')

Y = []
#for i in range(0, len(X)):
for i in range(len(X)):
#    print('Y =', Y)
    Y.append(X[i - 1] if i % 2 else X[i + 1]) 
print(Y)

print('Løsning 4')

Y = [None] * len(X)
for i in range(len(X)):
#    print('Y =', Y)
    if i % 2 == 0:  # i er lige
        Y[i + 1] = X[i]
    else:
        Y[i - 1] = X[i]
print(Y)

print('Løsning 5')

Y = []
#for i in range(0, len(X)):
for i in range(0, len(X), 2):
    #print('Y =', Y)
    Y.append(X[i + 1])
    Y.append(X[i])
print(Y)

print('Løsning 6')

Y = []
#for i in range(0, len(X)):
for i in range(0, len(X), 2):
    #print('Y =', Y)
    Y.extend([X[i + 1], X[i]])
print(Y)

print('Løsning 7')

Y = []
#for i in range(0, len(X)):
for i in range(0, len(X), 2):
    #print('Y =', Y)
    Y.extend(X[i:i + 2][::-1])
print(Y)

print('Løsning 8')

Y = []
#for i in range(0, len(X)):
for i in range(0, len(X), 2):
    #print('Y =', Y)
    Y.extend(reversed(X[i:i + 2]))
print(Y)

print('Løsning 9')

#print(X[::2])
#Y = [None] * len(X)
#lige_positioner = X[::2]
#ulige_positioner = X[1::2]
#print(Y)
#Y[::2] = ulige_positioner
#print(Y)
#Y[1:None:2] = lige_positioner
#print(Y)
Y = [None] * len(X)
Y[::2] = X[1::2]
Y[1::2] = X[0::2]
print(Y)

print('Løsning 10')

X = [1, 2, 3, 4, 5, 6]
for i in range(0, len(X), 2):
    #print('X =', X)
    tmp = X[i]
    X[i] = X[i + 1]
    X[i + 1] = tmp
print(X)

print('Løsning 11')

X = [1, 2, 3, 4, 5, 6]
for i in range(0, len(X), 2):
    #print('X =', X)
    X[i], X[i + 1] = X[i + 1], X[i]
print(X)

print('Løsning 12')

X = [1, 2, 3, 4, 5, 6]
for i in range(0, len(X), 2):
    #print('X =', X)
    X[i:i + 2] = X[i:i +2][::-1]
print(X)

print('Løsning 13')

X = [1, 2, 3, 4, 5, 6]
Y = [None] * len(X)
#for (i, x) in enumerate(X):
for i, x in enumerate(X):
    #print('Y =', Y)
    if i % 2 == 0:  # i er lige
        Y[i + 1] = x   # X[i]
    else:
        Y[i - 1] = x   # X[i]
print(Y)

print('Løsning 14')

X = [1, 2, 3, 4, 5, 6]
#print(X)
X[::2], X[1::2] = X[1::2], X[::2]
print(X)

print('Løsning 15')

X = [1, 2, 3, 4, 5, 6]
Y = [X[i + 1] if i % 2 == 0 else X[i-1]
     for i in range(len(X))]
print(Y)

print('Løsning 16')

Y = [x for i in range(0, len(X), 2) for x in X[i:i +2][::-1]]

print(Y)

print('Løsning 17')

Y = [x for par in zip(X[1::2], X[0::2]) for x in par]

print(Y)

print('Tidsmåling')

N = 1_000_000
X = [42] * N

import time
start = time.time()

Y = [None] * len(X)
#for (i, x) in enumerate(X):
for i, x in enumerate(X):
    #print('Y =', Y)
    if i % 2 == 0:  # i er lige
        Y[i + 1] = x   # X[i]
    else:
        Y[i - 1] = x   # X[i]

end = time.time()
print('Tid: ', end - start)
