Python 字典相关的笔试题(一)

2021-08-18 10:51:55 浏览数 (1)

最近在找新的工作,这两周一直在面试,面试中遇到了一些笔试题,以前遇到的更多是特别扯的笔试题,明显感觉工作中不会遇到,但是最近遇到的一些操作字典笔试题,觉得很有意思,生活中应该多少会用到,特此记录一下。

代码语言:javascript复制
d1 = {
    "a": None,
    "b": 123,
    "c": 1234,
    "d": {
        "e": 123,
        "f": None,
        "h": {
            "test": 123,
            "null": None
        }
    }
}

有上面这样的字典,嵌套层级是不固定的,需要把值是 None 的 key:value 删掉,这种实际场景可能会经常遇到。解题思路大概是这样的,对当前字典进行遍历处理,判断字典的 value 类型,如果 value的值是字符串,则按照字典的 key 和 value 更新到新的字典中,如果value值的类型是字典,则进行递归处理,需要注意的地方是新字典 key 的值。

解题代码如下:

代码语言:javascript复制
def del_key(d1: dict, new_dict=None) -> dict:
    if new_dict is None:
        new_dict = {}
    for key, value in d1.items():
        if isinstance(value, dict):
            new_dict[key] = {}
            del_key(value, new_dict[key])
        elif value:
            new_dict[key] = value
    return new_dict

这几天会连续更新下我遇到的 Python 笔试题。

0 人点赞