Home > database >  Appending lists to a list
Appending lists to a list

Time:07-02

I have a list I3. I am performing an index operation through I4 and appending based on the length of I3. The current and expected outputs are presented.

I3 = [[(0, 0), (0, 1)], [(0, 0), (1, 0)], [(0, 1), (1, 1)], [(1, 0), (1, 1)]]

for t in range(0,len(I3)):
    I4 = [(j, -i) for i, j in I3[t]]
    I4.append(I4)
    print("I4 =",I4)

The current output is:

I4 = [(0, 0), (1, 0), [...]]
I4 = [(0, 0), (0, -1), [...]]
I4 = [(1, 0), (1, -1), [...]]
I4 = [(0, -1), (1, -1), [...]]

The expected output is:

I4 = [[(0, 0), (1, 0)],[(0, 0), (0, -1)],[(1, 0), (1, -1)],[(0, -1), (1, -1)]]

CodePudding user response:

Note I4.append(I4) and I4 = [(0, 0), (1, 0), [...]]. You're appending a list to the end of itself. That's recursive. Try to append it to an empty list.

I3 = [[(0, 0), (0, 1)], [(0, 0), (1, 0)], [(0, 1), (1, 1)], [(1, 0), (1, 1)]]

temp = []
for t in range(0,len(I3)):
    I4 = [(j, -i) for i, j in I3[t]]
    temp.append(I4)
    print("I4 =",temp)

results in

I4 = [[(0, 0), (1, 0)]]
I4 = [[(0, 0), (1, 0)], [(0, 0), (0, -1)]]
I4 = [[(0, 0), (1, 0)], [(0, 0), (0, -1)], [(1, 0), (1, -1)]]
I4 = [[(0, 0), (1, 0)], [(0, 0), (0, -1)], [(1, 0), (1, -1)], [(0, -1), (1, -1)]]

CodePudding user response:

Here is a one liner

I4 = [[(j, -i), (l, -k)] for (i, j), (k, l) in I3]
  • Related