Bonjour, je dois extraire d'une liste une liste dont les éléments forment une suite géométrique de raison 2 et je dois le faire en sélectionnant successivement les éléments qui valent le double du dernier qui a été sélectionné.

voici ce que j'ai fait mais qui ne marche pas:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
l = eval(input())
liste = []
i = 0
for i in range(len(l)-1):
    x = l[i]
    y = l[i+1]
    if x*2 == y:
        liste.append(y)
    else:
        x = l[i-1]
        y = l[i+1]
        if x**2 == y:
          liste.append(y)
    i += 1 
print(liste)
la liste de base est : [ 1, 1, 2, 6, 4, 8, 3]
et le programme doit retourner : [1, 2, 4, 8]

J'aurais besoin d'aide car je ne vois du tout comment m'y prendre. Merci d'avance.