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

Python嵌套列表筛选:如何用列表推导式提取包含用户输入的子列表

问题定位与修正方案

原代码的两处核心错误

  • 条件判断错位:原代码写的判断条件myyear in nested_list,是检查输入的年份是否存在于最外层的大列表里,而非校验每个子列表内的年份字段。由于最外层列表的元素都是子列表,永远不会匹配到单独的年份字符串,这个条件恒为假,最终自然返回空列表
  • 遍历结构不符:原代码多嵌套了一层子列表内部的遍历,即使条件匹配,最终也会得到被拆平的一维元素列表,无法保留需求要求的嵌套结构

可直接运行的修正代码

nested_list = [['2021','France'],['2021','Germany'],['2021','Ireland'],['2020','Turkey'],['2020','Germany'],['2020','Ireland'],['2019','Japan'],['2019','USA'],['2019','Ireland']]

myyear = input('Please enter a year from 2000 and 2021:')
# 遍历每个子列表,匹配子列表首元素和输入年份,直接保留匹配的完整子列表
mydata = [sublist for sublist in nested_list if sublist[0] == myyear]

运行验证

当输入2021时,mydata的输出为:

[['2021', 'France'], ['2021', 'Germany'], ['2021', 'Ireland']]

注意:原嵌套列表中存储的年份为字符串格式,和input()返回的字符串类型完全一致,不需要额外做类型转换即可直接匹配。


内容的提问来源于stack exchange,提问作者T Swizzle Lover

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 21:06:03