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?
Asked
Active
Viewed 39 times
0

Reloader
- 742
- 11
- 22
3 Answers
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