import timeit
def first_a_fibonacci_1(a):
result = []
if a == 0: return [0]
elif a==1: return [0,1]
elif a==2: return [0,1,1]
else:
x,y = 0,1
result += [x,y]
while a-2>=0:x,y=y,x+y;a-=1;result.append(y)
return result
def first_a_fibonacci_2(a):
if a<3: return [0,1,1][:a+1]
result = [0]*a
x,y = 0,1
for i in range(1,a): result[i]=y; x,y=y,x+y;
return result
print(timeit.timeit('first_a_fibonacci_1(100000)','from __main__ import first_a_fibonacci_1',number=10))
print(timeit.timeit('first_a_fibonacci_2(100000)','from __main__ import first_a_fibonacci_2',number=10))