3

Using Python I want to convert:

outputlist = []

list = [[1,2,3],[a,b,c],[p,q,r]]
outputlist =[[1,a,p],[2,b,q],[3,c,r]]

How do I do this?

outputlist.append([li [0] for li in list ])

it yields

[1,a,p]

not the other items. I need it for all of the items.

Stephen Rauch
  • 44,696
  • 30
  • 102
  • 125

3 Answers3

6

You want to use zip:

Code:

lst = [[1,2,3],['a','b','c'],['p','q','r']]

print(zip(*lst))

Results:

[(1, 'a', 'p'), (2, 'b', 'q'), (3, 'c', 'r')]
Stephen Rauch
  • 44,696
  • 30
  • 102
  • 125
1

You can try with numpy:

>>> import numpy as np
>>> l = [ [1,2,3],['a','b','c'],['p','q','r']]
>>> np.array(l).T.tolist()
[['1', 'a', 'p'], ['2', 'b', 'q'], ['3', 'c', 'r']]
shizhz
  • 10,567
  • 3
  • 35
  • 46
0
list = [[1,2,3],[a,b,c],[p,q,r]]
outputlist = zip(*list)

zip() returns the elements as tuples, covert them to lists if that's exactly what you require.

Gautham Kumaran
  • 391
  • 4
  • 15