如何从嵌套列表中获取每个子列表的第一个元素?
如何提取嵌套列表中每个子列表的第一个元素?
没问题!要从你的嵌套列表[[1,2,4],[5,6,7,8],[7,8,9]]中获取每个子列表的第一个元素,得到[1,5,7],有几种简洁实用的方法,我给你一一说明:
1. 列表推导式(最推荐)
这是Python里最直观也最常用的写法,一行代码就能搞定:
nested_list = [[1,2,4],[5,6,7,8],[7,8,9]] first_elements = [sublist[0] for sublist in nested_list] print(first_elements) # 输出: [1, 5, 7]
它的逻辑很简单:遍历嵌套列表里的每个子列表,直接取每个子列表索引为0的元素(也就是第一个元素),自动生成结果列表。
2. 函数式风格:map + lambda
如果你更喜欢函数式编程的写法,可以用map配合匿名函数lambda:
nested_list = [[1,2,4],[5,6,7,8],[7,8,9]] first_elements = list(map(lambda sublist: sublist[0], nested_list)) print(first_elements) # 输出: [1, 5, 7]
map会把lambda函数应用到嵌套列表的每个子列表上,最后用list()把结果转换成列表。
3. 基础循环遍历(适合新手理解)
如果想更清晰地看到每一步的逻辑,用普通的for循环也完全没问题:
nested_list = [[1,2,4],[5,6,7,8],[7,8,9]] first_elements = [] for sublist in nested_list: first_elements.append(sublist[0]) print(first_elements) # 输出: [1, 5, 7]
先初始化一个空列表,然后逐个遍历子列表,把每个子列表的第一个元素添加到结果列表里。
额外提示:处理可能为空的子列表
如果你的嵌套列表里有可能存在空的子列表(比如[[1,2], [], [3]]),直接取sublist[0]会抛出IndexError。这时候可以加个判断跳过空列表:
nested_list = [[1,2,4], [], [5,6,7,8], [7,8,9]] first_elements = [sublist[0] for sublist in nested_list if sublist] print(first_elements) # 输出: [1, 5, 7]
内容的提问来源于stack exchange,提问作者Da Born
相关产品推荐
相关产品推荐

