在Python中,很容易测试两个变量是否具有相同的顶级类型:
但是在类型嵌套的情况下,这并不容易:
In [1]: s1 = 'bob'
In [2]: s2 = 'tom'
In [3]: type(s1) == type(s2)
Out[3]: True
但是在类型嵌套的情况下,这并不容易:
In [4]: strlist = ['bob', 'tom']
In [5]: intlist = [5, 6, 7]
In [6]: type(strlist) == type(intlist)
Out[6]: True
有没有一种“通用”的方法可以深入比较两个变量,使其具有以下特点:
deepcompare(['a', 'b'], [1, 2]) == False
deepcompare([42, 43], [1, 2]) == True
编辑:
为了更清晰地阐述问题,假设这包括列表长度和异质列表类型:
deepcompare([1, 2, 3], [1, 2]) == False
deepcompare([1, 3], [2, 'b']) == False
deepcompare([1, 'a'], [2, 'b']) == True
[str, str] != [int, int]
,例如。您可以假设这些结构包含同质类型,或者最终会查看例如deepcompare(['a', 1], ['b', 2])
(结果应该是什么)? - jonrsharpe