繁体   English   中英

在python中遍历多维数组

[英]Iterating through multidimensional arrays in python

我有以下格式的二维数组:

[[a,b,c], [a], [c,d], [e]]

我的目标是识别所有长度为1的子列表,并将该子列表中的元素与其他子列表的元素进行比较。 如果该元素存在,请从列表中删除这两个元素。

在这种情况下,我们在2d数组中寻找“ a”,并从2d数组中消除“ a,b,c”和“ a”。

结果应为:

[[c,d], [e]]

我的代码如下:

templist = list1 #list1 is the list containing all elements
for i in templist:
    if (len(i) == 1):
        if(any(i[0] in templist)):
            templist.remove(i)
            templist.remove([sublist for sublist in mylist if i[0] in sublist])
return templist

在运行此代码时,出现错误-'bool'对象不可迭代。 有人可以让我知道我在做什么错以及如何纠正错误吗?

这是一种实现此目的的方法:

Python 3解决方案:

ar = [["a","b","c"], ["a"], ["c","d"], ["e"]]
for pos,inner_ar in enumerate(ar):
    if len(inner_ar)==1:
        for i,inner_ar2 in enumerate(ar):
            if i!=pos and any(c for c in inner_ar2 for c in inner_ar):
                del ar[pos]
                del ar[i]
print(ar)

输出:

[['c', 'd'], ['e']]

注意:可以改善。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM