Python中如何按指定元素值筛选list of lists(列表的列表)
列表嵌套结构的多条件过滤方案
核心实现
直接使用Python列表推导式遍历匹配即可,写法简洁性能也足够:
# 按要求过滤lines列表 filtered_result = [item for item in lines if item[0] == '2016' and item[1] == 'Monday']
逻辑说明
- 遍历
lines中的每个子列表item item[0] == '2016'匹配子列表第一个元素(年份)为2016的条件item[1] == 'Monday'匹配子列表第二个元素(星期)为Monday的条件- 两个条件同时满足的子列表会被存入结果列表
filtered_result中
用你给出的示例数据运行后,得到的结果为:
[['2016', 'Monday', 10.41, 0.007841]]
注意事项
如果你的原始列表中第一个元素存储的是整数类型的年份,需要把判断条件里的字符串
'2016'改为整数2016,保证类型一致才能匹配成功。
扩展写法(适合复杂过滤规则)
如果后续需要频繁调整过滤规则,也可以把过滤逻辑抽为独立函数,配合filter方法使用:
def match_condition(item): # 可在此灵活修改、新增过滤规则 return item[0] == '2016' and item[1] == 'Monday' filtered_result = list(filter(match_condition, lines))
内容的提问来源于stack exchange,提问作者Vadim Katsemba
相关产品推荐
相关产品推荐

