如何提取列表中长度≥n的子列表的第n个元素?
解决方案
你可以直接在列表推导式中加入条件判断,筛选出长度≥4的子列表后再提取元素,这样就能避免索引错误:
# 注意不要用`list`作为变量名,会覆盖Python内置类型 lst = [[1,2],[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3], [1,2,3,4,5,6]] print([value[3] for value in lst if len(value) >= 4]) # 输出: [4, 4, 4, 4]
如果更倾向于分步处理(大型列表场景下更易读),可以先用filter函数过滤符合条件的子列表,再提取元素:
lst = [[1,2],[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3], [1,2,3,4,5,6]] # 先过滤出长度≥4的子列表 valid_sublists = filter(lambda sub: len(sub) >= 4, lst) # 提取每个符合条件子列表的索引3元素 result = [sub[3] for sub in valid_sublists] print(result) # 输出: [4, 4, 4, 4]
两种方法都能高效处理大型列表,列表推导式更简洁,filter的方式逻辑拆分更清晰,根据你的习惯选择即可。
内容的提问来源于stack exchange,提问作者Jinsoul Jung
相关产品推荐
相关产品推荐

