如何解决如何在Python中比较数组数组?
我有2个类似以下的列表:
a=[[1,1,1],[0,0],[1,0]]
b=[[1,0]]
如果b中的所有子列表都存在于a中,反之亦然,我想返回true。 这意味着a应该等于b,但是子列表的索引可以不同。 例如:
a=[[1,0]]
a和b相等,并且比较应返回true。此外,子列表将仅包含1或0的组合。我如何比较它们? 我尝试将它们转换为set:set(a),但这引发了错误。 除此之外,当我在while循环中尝试以下代码时,它给出了错误
a=[[1,0]]
def sublists_equal(a,b):
return all(l for l in b if l in a)
print(sublists_equal(a,b))
错误是:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我尝试同时打印两个数组以查看问题所在,它们的打印方式如下:
[[0 1 0 1 0]
[0 1 1 1 1]
[0 0 0 0 1]
[0 1 0 0 0]]
[array([0,0]),array([0,1]),0])]
解决方法
我希望这段代码对您有帮助
a=[[1,1,1],[0,0],[1,0]]
b=[[1,0]]
c=[[1,0]]
def check(a,b):
status = True
for i in a:
if i not in b:
status = False
break
return(status)
print(check(a,b))
print(check(a,c))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。