a = [4,6,7,8,1,5,3]
b = len(a) // 2
print(a[b:] + a[:b])
И не надо велосипедов изобретать, прочитай основы питона
Если же в задании строго запрещены срезы списков, то итерируйся по длине списка, прибавляй туда длину первой половины списка и бери остаток от деления на длину списка, чтобы когда твой итератор уйдёт за пределы списка, индекс перешёл в начало списка.
Не знаю, зачем тебе решение, если тебе (наверное) хочется подумать головой, но вот:
def f(a):
b = len(a) // 2
c = []
for i in range(len(a)):
idx = (i + b) % len(a)
c.append(a[idx])
return c
P.S. Первый вариант — pythonic way. Второй — колхоз way