python面试题,一道题考察Python基础能力

一道面试题就能检验出你的Python基础如何,想知道题目是什么吗?往下看

问:将 data 转换成 new_data 这种形式,写出转换过程

1

可以看出,转换的过程是将 key 的下划线进行拆分,然后下划线后边的字符嵌套在前面字符的值中。

感兴趣就打开 IDE,自己先试着解一下。

解题思路

你应该很快想到,主要思路是将下划线 split 后,然后依次使用字符生成内层字典,当达到最后一个字符时将数字作为值。

那么关键点在于,如何不断地获得内层字典去修改呢?实际本题就是考察你是否理解 Python 字典是引用传递这个特性。

什么是引用传递?我们知道 Python 中字典和列表对象都是可变对象,同一个字典对象的变量不管如何传递,只要改变其中一个变量会同步修改其他变量。这是因为变量存储的只是可变对象的引用,无论调用哪个变量,返回的依然是同一个对象。比如:

2

如上,利用这个特性,将内层字典赋值给一个中间变量,然后改变这个中间变量,即可同步修改最终的 new_data 变量。

根据这个思路,初步代码如下:

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值