使用Python的all函数比较两个列表时触发语法错误的问题
问题解决:用all()验证列表对应元素差值≤10的语法错误修复
你的代码有两个关键问题导致语法错误:
- 遍历两个列表的对应元素时,不能直接写
in l1,l2,需要用zip(l1,l2)来将两个列表的元素一一配对成元组。 - 列表推导中的
result是未定义的变量,这里不需要额外变量,直接将判断条件作为推导的元素即可,all()会自动检查所有条件是否为True。
修正后的代码如下:
l1 = [10, 20, 30, 40, 50] l2 = [50, 75, 30, 20, 40] # 用zip配对对应元素,直接返回每个元素的判断结果 all(x - y <= 10 for x, y in zip(l1, l2))
另外,这里可以省去列表推导的方括号,直接用生成器表达式传入all(),这样更节省内存。
内容的提问来源于stack exchange,提问作者user3525290
相关产品推荐
相关产品推荐

