python – 如何在列表的组合列表中删除列表的特定元素?

我试图找到一种方法来检查包含特定元素的其他几个列表的列表并删除它.

所以基本上我有2个列表(a和b),它们组合在另一个列表中(c)

a= ["aa","bb"]
b= ["aa","dd"]
c=[a,b]

现在我试图删除名为“aa”的所有元素

c.remove("aa")

遗憾的是,这不起作用,我得到错误“ValueError:list.remove(x):x not in list”因为“aa”在c中没有字面提到.

最后,我还要打印出c中的所有列表以及它们包含的内容.像这样的东西:

c= a: bb, b: dd

>有没有办法用一个命令删除几个列表中的元素,就像我尝试将它们组合在另一个列表中?
>我怎样才能打印出类似于上面描述的列表c?

最佳答案 您可以使用列表理解:

a = ['aa', 'bb']
b = ['aa', 'dd']
c = [a, b]

c = [[x for x in sublist if x != 'aa'] for sublist in c]

此解决方案将删除所有’aa’元素,而常规for循环中的list.remove(‘aa’)将仅删除每个子列表中的第一个匹配项.

点赞