If I have a list of lists and just want to manipulate an individual item in that list, how would I go about doing that?

For example:

List1 = [[10,13,17],[3,5,1],[13,11,12]] 

What if I want to take a value (say 50) and look just at the first sublist in List1, and subtract 10 (the first value), then add 13, then subtract 17?

7 Answers

You can access the elements in a list-of-lists by first specifying which list you're interested in and then specifying which element of that list you want. For example, 17 is element 2 in list 0, which is list1[0][2]:

>>> list1 = [[10,13,17],[3,5,1],[13,11,12]] >>> list1[0][2] 17 

So, your example would be

50 - list1[0][0] + list1[0][1] - list1[0][2] 
0

You can use itertools.cycle:

>>> from itertools import cycle >>> lis = [[10,13,17],[3,5,1],[13,11,12]] >>> cyc = cycle((-1, 1)) >>> 50 + sum(x*next(cyc) for x in lis[0]) # lis[0] is [10,13,17] 36 

Here the generator expression inside sum would return something like this:

>>> cyc = cycle((-1, 1)) >>> [x*next(cyc) for x in lis[0]] [-10, 13, -17] 

You can also use zip here:

>>> cyc = cycle((-1, 1)) >>> [x*y for x, y in zip(lis[0], cyc)] [-10, 13, -17] 
2

This code will print each individual number:

for myList in [[10,13,17],[3,5,1],[13,11,12]]: for item in myList: print(item) 

Or for your specific use case:

((50 - List1[0][0]) + List1[0][1]) - List1[0][2] 
List1 = [[10,-13,17],[3,5,1],[13,11,12]] num = 50 for i in List1[0]:num -= i print num 
50 - List1[0][0] + List[0][1] - List[0][2] 

List[0] gives you the first list in the list (try out print List[0]). Then, you index into it again to get the items of that list. Think of it this way: (List1[0])[0].

for l in list1: val = 50 - l[0] + l[1] - l[2] print "val:", val 

Loop through list and do operation on the sublist as you wanted.

new_list = list(zip(*old_list))) 

*old_list unpacks old_list into multiple lists and zip picks corresponding nth element from each list and list packs them back.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy