Skip to main content
 首页 » 编程设计

python之从嵌套列表中删除元素

2025年05月04日12bhlsheji

我是 python 的新手,正在学习列表。我正在尝试创建一个将从列表中删除特定值的函数。我知道有一个 .remove() 函数可以删除元素,但它对嵌套列表不起作用。

def remove(list, x): 
   if x in list:   
      return list.remove(x) 
 
mylist = [[1, 2, 3, 2, 4, 8, 2],2]  
remove(mylist, 2)  
print(mylist) 

我想得到的结果:

[1, 3, 4, 8] 

提前感谢您的帮助

请您参考如下方法:

我在这里定制你的代码你可以看到在线版本https://onlinegdb.com/Sk2oA9KGV

不明白的继续看说明

def remove(list, x): 
       if x in list:   
          return list.remove(x) 
           
    mylist = [[1, 2, 3, 2, 4, 8, 2],2] 
    for i in range(len(mylist)): 
         
        if isinstance(mylist[i], list) == True :  
            mylist[i] = list(set(mylist[i])) 
            mylist[i].remove(2) 
            mylist[i].sort() 
        else :  
            if mylist[i] == 2 :  
                del mylist[i] 
    print(mylist) 
    print() 

最后的结果是这样的

print(mylist) 

[[1, 3, 4, 8]]

print(mylist[0]) 

[1, 3, 4, 8]


Complete description

首先需要用for循环将多维数组中的数组分隔开

for i in range(len(mylist)): 

然后你应该检查你拥有的当前变量是否是array

if isinstance(mylist[i], list) == True : 

如果条件为真那么你继续 要在此处删除重复项 2 您需要此行

mylist[i] = list(set(mylist[i])) 

然后运行你的删除函数

mylist[i].remove(2) 

在此之后,您的结果将像这样 [8, 1, 3, 4] 然后你应该通过这段代码对你的数组进行排序

mylist[i].sort() 

还有一件事,如果你的变量没有排列,你应该检查它是否与你想要删除的项目匹配,如果匹配则删除它

if mylist[i] == 2 :  
     del mylist[i]