今天面试碰见三个问题
来源:8-4 缓存机制及Redis常考面试题

慕瓜2058331
2019-03-14
话说今天头一回面试 结果问的问题几乎全是python相关的。。。有点遭不住。
还记得有三个问题没答上来:
1.nginx跟gunicorn通信的方式是什么?
2.tuple([1, 2])是浅拷贝还是深拷贝?
3.设计一个函数,将形如{'jack':{'math':{'teacher':'xxx', 'score':'10'}}}
的字典展开成形如{'jack_math_teacher': 'xxx', 'jack_math_score': '10'}
这样的字典?
希望大家也可以讨论讨论碰着的面试题。
3回答
-
码农小杨
2019-03-16
第一个应该是通过 NGINX配置里面的模块协议
第二个问题 如果是可变对象 作为参数 那么是浅拷贝
第三个问题 递归
我写下我简陋的写法
key_string = ''
result_dict = {}
def dict_compress(some_dict):
global key_string
global result_dict
for key, value in some_dict.items():
if isinstance(value, dict):
key_string += str(key)
key_string += '_'
return dict_compress(value)
else:
result_key = key_string + str(key)
result_dict.update({result_key: value})
return result_dict等待老师回答
012022-05-12 -
djjcool
2019-03-15
我也是个小菜鸟。。。
第一个我看法和你一样。
第二个是浅拷贝
第三个,还蛮复杂的,我这么写的
def unpack(d): new_dic = {} for name in d: for subj in d[name]: for info in d[name][subj]: new_dic[name+"_"+subj+"_"+info]=d[name][subj][info] return new_dic
022019-03-15 -
慕瓜2058331
提问者
2019-03-14
第一个问题我回答是unix socket 面试官也没说对不对。。。
022019-12-17
相似问题