如何遍历两个未知列表,其中包含未知数量的子列表和未知元素。我要做的是比较它们,True
如果它们False
在特定索引中的长度相同,长度不同且元素类型不同,则返回它们。
到目前为止,我的代码:
def similarList(list1,list2):
if len(list1)!=len(list2):
return False
else:
if len(list1)>1 and len(list2)>1:
这是我不知道怎么的每个元素进行比较list1
和list2
。
例子:
similarList([0],[4])
真的
similarList([3.9],[8])
错误的
similarList([[4,5,6],4] , [[2,3,4],'a'])
False,因为4
是整数,'a'
是字符串。
我可能会做这样的事情:
def similarList(list1, list2):
if len(list1) != len(list2):
return False
return all(isinstance(a, type(b)) for a, b in zip(list1, list2))
isinstance(a, type(b))
根据您的用例,该位可能会稍作调整。例如,如果您想断言它们是完全相同的类型,那type(a) is type(b)
会更合适。如果您不知道哪个是子类,那么isinstance(a, type(b)) or isinstance(b, type(a))
可能就是您想要的。
仅供参考:“相同类型”标准中存在一定的歧义-例如,考虑'foo'
和u'foo'
。它们不是同一类型。它们甚至都不会通过isinstance
我上面概述的最宽松的检查,但是对于许多应用程序来说,它们是可以互换的。。。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句