Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 过滤阵列的阵列(最佳方法)_Python_Arrays_List_Numpy - Fatal编程技术网

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]等。谢谢!谢谢你!那有帮助