如何将删除嵌套列表指定列的for循环改写为列表推导式(list comprehension)
问题解答
你写的列表推导式触发语法错误的核心原因是:del是Python语句,而列表推导式的元素位置仅支持填写可返回结果的表达式,语句无法放在该位置使用。
你要实现的删除每个子列表第4、5位元素(对应保留索引0、1、2的前3位元素)的需求,直接对每个子列表做前缀切片即可,正确的列表推导式写法如下:
table2 = [row[:3] for row in table]
补充两点注意事项:
- 你原来用
del的for循环属于原地修改,执行后原嵌套列表table的内容会被改动 - 上述列表推导式的写法会生成全新的嵌套列表赋值给
table2,不会修改原有table的数据,如果你确实需要原地修改原列表,保留原来的for循环写法是更合适的选择
内容的提问来源于stack exchange,提问作者noskule
相关产品推荐
相关产品推荐

