Python Forum

Full Version: creating a list from lists of lists
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Can someone tell me how to sum values across lists of lists....For example I have a list of a list that is 2x4....It in turn is contained in a list that is 5 long so effectively a 2x4x5...I would like to grab the x element in each list from the whole 2x4x5...looking for the solution OTHER than numpy....Thank you...Here is the code for matrix list

Thank you!

#!/usr/bin/env python3
 2 import random
 3 def main():
 4     d = []
 5     for j in range(5):
 6         d.append([[random.randint(0,4) for i in range(4)] for k in range(2)])
 7     return(d)
Try not copy in line number in code.

So this is the start.
>>> lst = main()
>>> lst
[[[2, 1, 4, 3], [3, 4, 2, 1]],
 [[1, 0, 0, 3], [0, 3, 1, 1]],
 [[0, 1, 4, 2], [4, 0, 1, 3]],
 [[1, 0, 0, 4], [3, 3, 0, 0]],
 [[3, 1, 3, 0], [3, 4, 4, 2]]]
So to use eg sum() on the list need first to flatten the list out.
>>> for i in lst:
...     lst = [item for n in i for item in n]
...     print(lst)   
...     
[2, 1, 3, 4, 1, 4, 3, 4]
[4, 0, 1, 3, 0, 3, 0, 0]
[0, 0, 0, 1, 2, 1, 4, 0]
[2, 1, 0, 1, 4, 1, 4, 3]
[4, 0, 3, 4, 1, 4, 2, 2]
Now will sum() work.
>>> lst = main()
>>> for i in lst:
...     lst = [item for n in i for item in n]
...     print(sum(lst))     
...     
17
18
13
12
15
Then i think you can do the last step if want the total sum.