以下是一个使用Python语言实现的比较包含字典和数组的两个数组的示例代码:
def compare_arrays(arr1, arr2):
# 比较数组长度
if len(arr1) != len(arr2):
return False
# 比较数组元素
for i in range(len(arr1)):
if type(arr1[i]) != type(arr2[i]):
return False
# 如果元素是字典类型
if isinstance(arr1[i], dict):
if not compare_dicts(arr1[i], arr2[i]):
return False
# 如果元素是数组类型
elif isinstance(arr1[i], list):
if not compare_arrays(arr1[i], arr2[i]):
return False
# 其他类型元素直接比较
else:
if arr1[i] != arr2[i]:
return False
return True
def compare_dicts(dict1, dict2):
# 比较字典键的数量
if len(dict1) != len(dict2):
return False
# 比较字典键值对
for key in dict1:
if key not in dict2:
return False
# 如果值是字典类型
if isinstance(dict1[key], dict):
if not compare_dicts(dict1[key], dict2[key]):
return False
# 如果值是数组类型
elif isinstance(dict1[key], list):
if not compare_arrays(dict1[key], dict2[key]):
return False
# 其他类型值直接比较
else:
if dict1[key] != dict2[key]:
return False
return True
# 示例用法
arr1 = [1, 2, {'a': 3, 'b': [4, 5]}, [6, {'c': 7}]]
arr2 = [1, 2, {'a': 3, 'b': [4, 5]}, [6, {'c': 7}]]
print(compare_arrays(arr1, arr2)) # 输出 True
以上代码定义了两个递归函数compare_arrays
和compare_dicts
,用于比较包含字典和数组的两个数组。compare_arrays
函数用于比较数组,compare_dicts
函数用于比较字典。在比较数组和字典时,会递归调用自身来进行深层次的比较。最终返回比较结果。通过调用compare_arrays
函数来比较两个数组的包含关系,并输出结果。