我是 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]
