rh1990
rh1990

Reputation: 940

Adding a list to itself after addition to each value

I have a list of integers that follows a particular pattern, it's complex but for example say:

x = [0,2,4,6,8]

I'd like to extend the list with 9 more copies of itself, but add a constant value that linearly scales each time. E.g. if

constant = 10
loop = 9

Then the 2nd extension would result in:

x_new = [0,2,4,6,8,10,12,14,16,18]

So I think I want a loop that iterates through x and extends the array by x[i]+constant, loop number of times?

for i in range(loop):
    for j in range(len(x)):
        x_new = x.extend((x[j]+constant)*i)

Or perhaps this can be easily done through list comprehension? My actual list is ~3000 long and I'll be doing it a few times with different values of loop and constant.

Upvotes: 0

Views: 76

Answers (2)

Durga Prasad
Durga Prasad

Reputation: 11

I just did some work on above question, this code can be useful for above question.

x=[0,2,4,6,8]
y=x[4]
i=0
j=0
while(i<9):
    z=range(y+2,y+12,2)
    x.extend(z)
    print x
    y=y+10
    i=i+1 

Upvotes: 0

Błotosmętek
Błotosmętek

Reputation: 12927

Yes, list comprehension should work:

x_new = [ e + constant * i for i in range(loop+1) for e in x ]

Upvotes: 4

Related Questions