如何删除数组中每个子列表的第4个元素
解决方法
你得搞清楚:直接对父数组用pop(3)或者del操作,改的是整个数组里的子列表(也就是删掉第4个子列表),而不是每个子列表里的元素。你需要逐个遍历每个子列表,单独处理每个子列表里的元素。
下面给你几种Python里常用的实现方式:
方法1:列表推导式(简洁高效)
直接生成新数组,每个子列表只保留前3个元素:
original_array = [[1,2,3,4], [5,6,7,8], [9,10,11,12]] new_array = [sublist[:3] for sublist in original_array]
这种方式不会改动原数组,直接得到你要的结果。
方法2:原地修改原数组
如果想直接改原数组而不是生成新的,可以循环遍历每个子列表,对每个子列表执行删除操作:
original_array = [[1,2,3,4], [5,6,7,8], [9,10,11,12]] for sublist in original_array: # 第4个元素的索引是3(Python索引从0开始),用pop(3)删掉它 sublist.pop(3) # 也可以用 del sublist[3],效果完全一样
循环跑完之后,原数组里的每个子列表就只剩3个元素了。
为啥你之前操作不对?
你之前应该是直接给父数组用了pop(3),这是对整个父数组操作,会删掉父数组里索引为3的元素(也就是第4个子列表),而不是每个子列表里的第4个元素。必须要遍历每个子列表,针对子列表本身动手才行。
内容的提问来源于stack exchange,提问作者lordclyborne
相关产品推荐
相关产品推荐

