Python 过滤阵列的阵列(最佳方法)
输入:Python 过滤阵列的阵列(最佳方法),python,arrays,list,numpy,Python,Arrays,List,Numpy,输入:X=[[0,2,4],[1,4],[2,0],[3],[4,0,1]] 因此,我有一个数组,我必须在其中迭代以过滤它,如下所示: X[0]=[0,2,4]因此我必须从所有后续数组中删除每个0,2和4,以获得:X=[[0,2,4],[1],[3],[1] X[1]=[1]所以我必须从X[2]、X[3]和X[4]中删除每一个1才能得到:X=[[0,2,4]、[1]、[3]、][code> X[2]=[],没有要删除的内容 X[3]=[3],必须从空的X[4]中删除3 最终输出将是:[[0,2,
X=[[0,2,4],[1,4],[2,0],[3],[4,0,1]]
因此,我有一个数组,我必须在其中迭代以过滤它,如下所示:
X[0]=[0,2,4]
因此我必须从所有后续数组中删除每个0,2和4,以获得:X=[[0,2,4],[1],[3],[1]
X[1]=[1]
所以我必须从X[2]、X[3]和X[4]中删除每一个1才能得到:X=[[0,2,4]、[1]、[3]、][code>
X[2]=[]
,没有要删除的内容
X[3]=[3]
,必须从空的X[4]中删除3
最终输出将是:[[0,2,4],[1],[3],[3]。
我可以使用for循环轻松地完成这项工作,但我在想,您是否可以建议我使用一些库函数或python函数来更快地完成这项工作,或者使用更少的代码。numpy图书馆能帮我吗?我希望您能提供一些意见,谢谢。如果内部列表中的订单无关紧要,这里有一个解决方案:
from django.contrib.admin.utils import flatten
X = [list(set(X[i])-set(flatten(X[:i]))) for i in range(len(X))]
输出:
[[0, 2, 4], [1], [], [3], []]
如果内部列表中的顺序无关紧要,下面是一个解决方案:
from django.contrib.admin.utils import flatten
X = [list(set(X[i])-set(flatten(X[:i]))) for i in range(len(X))]
输出:
[[0, 2, 4], [1], [], [3], []]
子列表中的顺序重要吗?或者只是想删除重复项?到目前为止,您在循环方面做了哪些工作。我认为你最终需要做一些循环,你也许能够优化你的循环。实际上,我只需要删除后面数组中的重复项。我正在考虑做一个双循环来遍历所有列表,将其与下面的列表进行比较并删除重复项。您可能可以用单循环来完成。但是现在你不在乎顺序,你可以使用集合。我将在上面发布一个解决方案。我需要一个双循环来遍历每个列表及其后面的列表。例如,对于X[0],我需要检查X[0]与X[1],X[0]与X[2]等。。那么对于X[1],我需要用X[2]等检查X[1]。子列表中的顺序是否重要?或者只是想删除重复项?到目前为止,您在循环方面做了哪些工作。我认为你最终需要做一些循环,你也许能够优化你的循环。实际上,我只需要删除后面数组中的重复项。我正在考虑做一个双循环来遍历所有列表,将其与下面的列表进行比较并删除重复项。您可能可以用单循环来完成。但是现在你不在乎顺序,你可以使用集合。我将在上面发布一个解决方案。我需要一个双循环来遍历每个列表及其后面的列表。例如,对于X[0],我需要检查X[0]与X[1],X[0]与X[2]等。。那么对于X[1],我需要检查X[1]与X[2]等。谢谢!谢谢你!那有帮助