[英]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.