Is there a list comprehension for this?

Mathias Panzenboeck e0427417 at student.tuwien.ac.at
Tue Nov 21 22:58:22 CET 2006


liam_herron wrote:
> Given:
> dw = [ 1, -1.1, +1.2 ]
> 
> Suppose I want to create a list 'w' that is defined as
> 
> w[0] = dw[0],
> w[1] = w[0] + dw[1],
> w[2] = w[1] + dw[2]
> 
> Is there a list comprehension or map expression to do it in one or 2
> lines.
> 


Is this a function where you just want to know a w[n]?

then:

def w(n):
	return sum((1 + i * 0.1) * (i % 2 and 1 or -1) for i in xrange(n))


otherwise:

n, w, x = 3, [], 0

for y in ((1 + i * 0.1) * (i % 2 and 1 or -1) for i in xrange(n)):
	x += y
	w.append(x)



More information about the Python-list mailing list