You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何从嵌套列表中删除指定元素所在的子列表?

Python嵌套列表删除包含指定元素的子列表解决方案

你之前用mylist.remove('item73')失败的原因很直接:remove()方法会在列表中寻找完全匹配的元素,而你的列表里的元素是一个个子列表,不是单独的字符串'item73',所以它找不到要删除的目标,自然执行失败。

下面是几种可行的实现方式:

方法1:列表推导式(推荐,简洁高效)

直接生成一个过滤后的新列表,筛选掉包含目标元素的子列表:

mylist = [
    ["item 1",  'green', 'round',     'sold'],
    ["item73",  'red',   'square',    'for sale'],
    ['item477', 'blue',  'rectangle', 'on hold']
]
target_item = 'item73'
# 过滤掉包含target_item的子列表
mylist = [sublist for sublist in mylist if target_item not in sublist]

执行后mylist就会变成你想要的目标列表。

方法2:倒序遍历删除(修改原列表)

如果不想生成新列表,要直接修改原列表,需要倒序遍历索引,避免删除元素后索引偏移导致漏删:

mylist = [
    ["item 1",  'green', 'round',     'sold'],
    ["item73",  'red',   'square',    'for sale'],
    ['item477', 'blue',  'rectangle', 'on hold']
]
target_item = 'item73'
# 从最后一个元素往回遍历
for i in range(len(mylist)-1, -1, -1):
    if target_item in mylist[i]:
        del mylist[i]

方法3:使用filter函数

和列表推导式逻辑类似,通过filter过滤后转成列表:

mylist = [
    ["item 1",  'green', 'round',     'sold'],
    ["item73",  'red',   'square',    'for sale'],
    ['item477', 'blue',  'rectangle', 'on hold']
]
target_item = 'item73'
mylist = list(filter(lambda sublist: target_item not in sublist, mylist))

内容的提问来源于stack exchange,提问作者user8012864

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 21:32:49