【发布时间】:2014-05-08 13:01:35
【问题描述】:
如何编写一个函数,该函数需要从任意深度的嵌套列表中访问不是列表的第一个值?有时正确的语法是 somelist[0],有时是 somelist[0][0] 等等。整个列表的展平只是为了阅读第一个正确的解决方案吗?
【问题讨论】:
标签: python list python-3.x nested-lists
如何编写一个函数,该函数需要从任意深度的嵌套列表中访问不是列表的第一个值?有时正确的语法是 somelist[0],有时是 somelist[0][0] 等等。整个列表的展平只是为了阅读第一个正确的解决方案吗?
【问题讨论】:
标签: python list python-3.x nested-lists
我会做类似的事情
value = my_list[0]
if isinstance(value, list):
value = value[0]
# use the value
【讨论】:
此问题已回复here。
总结:
from itertools import chain
myList = [ [1, 2, 3], [5, 6], [], [114, 66, 55] ]
flatList = list( chain( *myList ) )
输出:[1, 2, 3, 5, 6, 114, 66, 55]
然后只需访问flatList[0] 即可获取第一个元素。
【讨论】:
试试这个:
def get_first_item(value):
if isinstance(value, list):
return get_first_item(value[0])
return value
【讨论】: