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