Python替换列表中空列表为[(0,0)]时出现语法错误如何解决
问题分析与修正方案
错误原因
- 列表推导式的元素生成位置不支持
ele=[(0,0)]这类直接赋值写法,你的需求是根据元素是否为空返回对应值,不需要在推导式内给遍历变量赋值 - 原有代码添加了
if ele != []的过滤条件,会直接把所有空列表从结果中排除,无法触发替换逻辑
修正后代码
tuples=[[(16, 178)], [], [(46, 183)], [(15, 55)], [(42, 79)], [(54, 192)], [], [(2, 86)], []] # 用三元表达式判断元素是否为空,为空则返回[(0,0)],否则返回原元素 res = [ele if ele != [] else [(0,0)] for ele in tuples] print(res)
输出结果
[[(16, 178)], [(0, 0)], [(46, 183)], [(15, 55)], [(42, 79)], [(54, 192)], [(0, 0)], [(2, 86)], [(0, 0)]]
内容的提问来源于stack exchange,提问作者john johns
相关产品推荐
相关产品推荐

