2D嵌套列表查找疑问:为何仅返回最后一个符合条件的值?
问题分析与解决方案
你的代码问题出在单个变量存储结果上:found被定义为单个变量,每次找到大于5的值时,新值会覆盖掉之前存储的found内容。遍历过程中,先找到6并赋值给found,之后又找到8并覆盖了6,所以最后只输出了最后一个符合条件的8。
要收集所有符合条件的值,应该用列表来存储结果,修改后的代码如下:
nested =[[4, 6, 8], [3, 5, 3]] found = [] # 初始化空列表,用于收集所有符合条件的值 for row in nested: for value in row: if value > 5: found.append(value) print(', '.join(map(str, found))) # 将列表元素转为字符串并按指定格式拼接输出
执行这段代码后,终端输出为:
6, 8
如果不需要严格的6, 8格式,也可以直接打印列表,输出会是[6, 8],根据需求选择即可。
内容的提问来源于stack exchange,提问作者Olisau
相关产品推荐
相关产品推荐

