MST

星途 面试题库

面试题:Python中复杂数据结构的不等条件检查

有两个列表list1 = [1, 2, {'sub_key':'sub_value'}]和list2 = [1, 2, {'sub_key': 'different_value'}],请编写一个函数,该函数能够比较这两个列表是否不等,并且考虑到字典内部键值对的差异,函数返回布尔值。要求处理列表可能包含不同类型嵌套数据结构的情况。
38.9万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试
import collections.abc


def compare_lists(list1, list2):
    if type(list1) != type(list2):
        return True
    if isinstance(list1, list):
        if len(list1) != len(list2):
            return True
        for a, b in zip(list1, list2):
            if compare_lists(a, b):
                return True
        return False
    elif isinstance(list1, dict):
        if set(list1.keys()) != set(list2.keys()):
            return True
        for key in list1.keys():
            if compare_lists(list1[key], list2[key]):
                return True
        return False
    else:
        return list1 != list2

你可以使用以下方式调用这个函数:

list1 = [1, 2, {'sub_key':'sub_value'}]
list2 = [1, 2, {'sub_key': 'different_value'}]
print(compare_lists(list1, list2))