一道面试题就能检验出你的Python基础如何,想知道题目是什么吗?往下看
问:将 data 转换成 new_data 这种形式,写出转换过程。
可以看出,转换的过程是将 key 的下划线进行拆分,然后下划线后边的字符嵌套在前面字符的值中。
感兴趣就打开 IDE,自己先试着解一下。
解题思路
你应该很快想到,主要思路是将下划线 split 后,然后依次使用字符生成内层字典,当达到最后一个字符时将数字作为值。
那么关键点在于,如何不断地获得内层字典去修改呢?实际本题就是考察你是否理解 Python 字典是引用传递这个特性。
什么是引用传递?我们知道 Python 中字典和列表对象都是可变对象,同一个字典对象的变量不管如何传递,只要改变其中一个变量会同步修改其他变量。这是因为变量存储的只是可变对象的引用,无论调用哪个变量,返回的依然是同一个对象。比如:
如上,利用这个特性,将内层字典赋值给一个中间变量,然后改变这个中间变量,即可同步修改最终的 new_data 变量。
根据这个思路,初步代码如下: