I like to move each item in this list to another nested list could someone help me?
a = [['AAA', '1', '1', '10', '92'], ['BBB', '262', '56', '238', '142'], ['CCC', '86', '84', '149', '30'], ['DDD', '48', '362', '205', '237'], ['EEE', '8', '33', '96', '336'], ['FFF', '39', '82', '89', '140'], ['GGG', '170', '296', '223', '210'], ['HHH', '16', '40', '65', '50'], ['III', '4', '3', '5', '2']]
On the end I will make list like this:
[['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'.....], ['1', '262', '86', '48', '8', '39', ...], ['1', '56', '84', '362', '33', '82', ...], ['10', '238', '149', '205', '96', '89', ...], ... ...]
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
Use zip with * and map:
>>> map(list, zip(*a)) [['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III'], ['1', '262', '86', '48', '8', '39', '170', '16', '4'], ['1', '56', '84', '362', '33', '82', '296', '40', '3'], ['10', '238', '149', '205', '96', '89', '223', '65', '5'], ['92', '142', '30', '237', '336', '140', '210', '50', '2']]
Note that map returns a map object in Python 3, so there you would need list(map(list, zip(*a)))
Using a list comprehension with zip(*...), this would work as is in both Python 2 and 3.
[list(x) for x in zip(*a)]
NumPy way:
>>> import numpy as np >>> np.array(a).T.tolist() [['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF', 'GGG', 'HHH', 'III'], ['1', '262', '86', '48', '8', '39', '170', '16', '4'], ['1', '56', '84', '362', '33', '82', '296', '40', '3'], ['10', '238', '149', '205', '96', '89', '223', '65', '5'], ['92', '142', '30', '237', '336', '140', '210', '50', '2']]
Method 2
Through list comprehension:
[[x[i] for x in mylist] for i in range(len(mylist[0]))]
Method 3
You can also use
a= np.array(a).transpose().tolist()
Method 4
You could also do:
row1 = [1,2,3] row2 = [4,5,6] row3 = [7,8,9] matrix = [row1, row2, row3] trmatrix = [<div class="su-row"></div> for row in matrix],<div class="su-row"></div> for row in matrix], <div class="su-row"></div> for row in matrix]]
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0