一道快速考察 Python 基础的面试题
一道快速考察 Python 基础的面试题这是前一阵子群友发在群里的一道面试题,利用 Python 字典的特性,可以巧妙地使用精简代码达成完美解。 题目将 data 转换成 new_data 这种形式,写出转换过程。 data = { 'a_b_h':1, 'a_b_i':2, 'a_c_j':3, 'a_d':4, 'a_c_k':5, 'a_e':6 } new_data = { 'a':{ 'b':{ 'h':1, 'i':2 }, 'c':{ 'j':3, 'k':5 }, 'd':4, 'e':6 } }可以看出,转换的过程是将 key 的下划线进行拆分,然后下划线后边的字符嵌套在前面字符的值中。 感兴趣就打开 IDE,自己先试着解一下。 解题思路你应该很快想到,主要思路是将下划线split后,然后依次使用字符生成内层字典,当达到最后一个字符时将数字作为值。 那么关键点在于,如何不断地获得内层字典去修改呢?实际本题就是考察你是否理解 Python 字典是引用传递这个特性。 什么是引用传递?我们知道 Python 中字典和列表对象都是可变对象,它们的变量传递给另一个变量后,改变对...