Posso produzir a lista [0, 2, 6, 12, 20, 30, 42, 56, 72, 90]
usando o seguinte código:
x = []
y = 0
for i in range(2,21,2):
x.append(y)
y += i
No entanto, não tenho certeza de como converter isso em sintaxe de compreensão de lista do formulário
[expressão para valor em condição if iterável]
Você pode atribuir
y
dentro da compreensão, usando uma expressão de atribuição , ou seja, usando:=
:Alternativamente, você pode aproveitar o fato de que estes são números duplos triangulares e então você não precisa
y
(mas de multiplicação):Use
itertools.accumulate
uma abordagem curta:Se olharmos para a relação entre índices e números:
Vemos que isso é uma matemática muito simples.
Tentando escrever o mesmo código usando a compreensão de lista:
y
está definida:=
o operador