1
resposta

Looping For com List Comprehension

Tenho o código mais abaixo e gostaria de substituir o looping for por uma List Comprehension como esta:

ABC_Vol = [vol_acum += vol for vol in new_data['Vol Méd']]

Porém, o python não permite a sintaxe "+=". Há alguma alternativa?

vol_acum = 0
ABC_Vol = []

for vol in new_data['Vol Méd']:
        vol_acum += vol
        ABC_Vol.append(vol_acum)

new_data['ABC_Vol Acum'] = ABC_Vol
print (ABC_Vol)

Obrigado `

1 resposta

Então, é como você disse. Não é permitido atribuir um valor dentro da list comprehension. Sendo sincero, não sou muito bom com estas, mas eu fiz isso aqui, não sei se é o resultado que deseja:

ABC_Vol = [new_data['Vol Méd'][x] + ABC_Vol[x-1] if x > 0 else new_data['Vol Méd'][x] for x in range(len(new_data['Vol Méd']))]

Como pode ter ficado confuso eu vou colocar a sintaxe mais limpa:

nova_lista = [lista[x] + nova_lista[x-1] if x > 0 else lista[x] for x in range(len(lista))]