0
list1 = [[],[],[]]
list2 = [[1,2,3],[4,5,6],[7,8,9]]
i = 0
j = 0
k = 0
while i < len(list1):
    list1[i].append(list2[j][k])
    i += 1
    k += 1

I want my output for list1 to be [[1,4,7],[2,5,8],[3,6,9]]. The problem is I don't know how to advance through the lists in list2. Can you help me out?

3
Contributors
4
Replies
5
Views
6 Years
Discussion Span
Last Post by arunbg
Featured Replies
  • [QUOTE=pyprog;1172476][CODE]list1 = [[],[],[]] list2 = [[1,2,3],[4,5,6],[7,8,9]] i = 0 j = 0 k = 0 while i < len(list1): list1[i].append(list2[j][k]) i += 1 k += 1[/CODE] I want my output for list1 to be [[1,4,7],[2,5,8],[3,6,9]]. The problem is I don't know how to advance through the lists in list2. Can … Read More

1
list1 = [[],[],[]]
list2 = [[1,2,3],[4,5,6],[7,8,9]]
i = 0
j = 0
k = 0
while i < len(list1):
    list1[i].append(list2[j][k])
    i += 1
    k += 1

I want my output for list1 to be [[1,4,7],[2,5,8],[3,6,9]]. The problem is I don't know how to advance through the lists in list2. Can you help me out?

why can't you do list1 = list2 EDIT: i just realized that's not your purpose
hold on, i'm thinking of a solution

EDIT2:here's the solution
python 3.0 code

list1 = [[],[],[]]
list2 = [[1,2,3],[4,5,6],[7,8,9]]
i = 0
while i < len(list1):
    list1[i] = [l[i] for l in list2]
    i+=1
print(list1)

Edited by jcao219: n/a

0

Thanks for the reply, but I absolutely cannot understand Python 3.0 code. Can you write it as it is written for earlier versions?

0

print(list1)
to
print list1

and that's it.

so it becomes

list1 = [[],[],[]]
list2 = [[1,2,3],[4,5,6],[7,8,9]]
i = 0
while i < len(list1):
    list1[i] = [l[i] for l in list2]
    i += 1
print list1

Edited by jcao219: n/a

1

For a one-line solution,

list1=[[l[i] for l in list2] for i in range(len(list2[0]))]

This is basically a comprehension of list comprehensions.

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.