0

How to write a function which needs to access the first value which is not a list from an arbitray-deep nested list? Sometimes right syntax will be somelist[0], some other time somelist[0][0] etc. Is flattening of the whole list just to read the first one correct solution?

Reloader
  • 742
  • 11
  • 22

3 Answers3

0

This has been answered here.

Summarizing:

from itertools import chain
myList = [ [1, 2, 3], [5, 6], [], [114, 66, 55] ]
flatList = list( chain( *myList ) )

Output: [1, 2, 3, 5, 6, 114, 66, 55]

Then just access flatList[0] for the first element.

Community
  • 1
  • 1
Tejas Pendse
  • 551
  • 6
  • 19
0

I would do something like

value = my_list[0]
if isinstance(value, list):
    value = value[0]

# use the value
mpcabd
  • 1,813
  • 15
  • 20
0

Try this:

def get_first_item(value):
    if isinstance(value, list):
        return get_first_item(value[0])
    return value
fred.yu
  • 865
  • 7
  • 10