You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选列表的列表中首元素匹配指定列表的子列表至新列表?

解决方案:筛选首元素匹配的子列表

我们需要从嵌套列表list2中筛选出那些**首元素存在于list1**的子列表,组成新列表newlist。示例场景如下:

list1 = [2,4,7,10]
list2 = [[2,5],[3,7],[1,6],[10,3]]

# 期望输出
newlist = [[2,5],[10,3]]

方法1:列表推导式(简洁推荐)

这是Python中最直观高效的写法,直接遍历list2并判断子列表首元素是否在list1内:

list1 = [2,4,7,10]
list2 = [[2,5],[3,7],[1,6],[10,3]]

newlist = [sublist for sublist in list2 if sublist[0] in list1]
print(newlist)  # 输出: [[2,5],[10,3]]

方法2:集合优化查询效率(适合大数据量)

如果list1包含大量元素,将其转换为集合可以把元素存在性检查的时间复杂度从O(n)降到O(1),大幅提升速度:

list1 = [2,4,7,10]
list2 = [[2,5],[3,7],[1,6],[10,3]]

set1 = set(list1)
newlist = [sublist for sublist in list2 if sublist[0] in set1]
print(newlist)  # 输出: [[2,5],[10,3]]

方法3:普通循环实现(新手友好)

如果觉得推导式不够直观,也可以用基础的循环逻辑逐个判断并添加:

list1 = [2,4,7,10]
list2 = [[2,5],[3,7],[1,6],[10,3]]

newlist = []
for sublist in list2:
    if sublist[0] in list1:
        newlist.append(sublist)
print(newlist)  # 输出: [[2,5],[10,3]]

内容的提问来源于stack exchange,提问作者nsp077

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 15:07:06