Home > Back-end >  How to slice a nested list twice?
How to slice a nested list twice?

Time:04-27

With a nested list like:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

I need to be able to slice this list for:

[[1, 2], [4, 5]]

I've been trying:

list(ex_list[:2][:2])

but this isn't working. I'm obviously doing something very wrong but haven't been able to find a solution as using commas doesn't work either for some reason.

CodePudding user response:

You need to slice the elements seperately to the outer list, better to do the outer list first to avoid unnecessary inner slices

[inner[:2] for inner in ex_list[:2]]

CodePudding user response:

You should try using comprehension: Try:

[i[:2] for i in ex_list[:2]]

Code:

ex_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print([i[:2] for i in ex_list[:2]])

Output:

[[1, 2], [4, 5]]

CodePudding user response:

Is using numpy an option?

import numpy as np

ex_list = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(ex_list[:2,:2].tolist()) # [[1, 2], [4, 5]]

The first :2 slice the outer list, the second slice each one of the inner lists.

  • Related