日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python递归面试题_python面试题

發(fā)布時間:2025/3/15 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python递归面试题_python面试题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

需求:輸入以下json串,返回字典,字典值僅包括json最底層數(shù)據(jù)

輸入:my_dict = {

"name":"alien",

"country":"china",

"other":{

"age":"18",

"gender":"man"

},

"school":"HLW"

}

輸出:{'country': 'china', 'school': 'HLW', 'age': '18', 'name': 'alien', 'gender': 'man'}

1、 背景知識

1)item(),遍歷字典

2)isinstance(),判斷對象的變量類型

2、思路

獲取json中key和value值,判斷如果value是不是字典類型,則循環(huán)遞歸獲取key和value值

3、獲取json最底層數(shù)據(jù)(一)

def read_json_only1(dict_str):

dict_result = {}

for k,v in dict_str.items():

if isinstance(v,dict): #判斷如果value是字典類型,則提取字典中的key和value

for k2,v2 in v.items():

dict_result[k2]=v2

else:

dict_result[k] = v

print dict_result

if __name__ == '__main__':

read_json_only1(my_dict)

輸入:

my_dict = {

"name":"alien",

"country":"china",

"other":{

"age":"18",

"gender":"man"

},

"school":"HLW"

}

輸出:{'country': 'china', 'school': 'HLW', 'age': '18', 'name': 'alien', 'gender': 'man'}

4、發(fā)現(xiàn)上面方法只能滿足只有一到兩層的情況,如果兩層下面的value 還是字典,就沒法獲取到,于是打個問號,能否用遞歸方法實現(xiàn)

如:輸入串為

my_dict = {

"name":"alien",

"country":"china",

"other":{

"age":"18",

"gender":"man",

"other":{

"address":"beijing",

"phone":"13800138000"

}

},

"school":"HLW"

}

輸出結(jié)果為:{'school': 'HLW', 'name': 'alien', 'country': 'china', 'age': '18', 'other': {'phone': '13800138000', 'address': 'beijing'}, 'gender': 'man'}

5、優(yōu)化,使用遞歸獲取獲取json最底層數(shù)據(jù)(二)

dict_result = {}

def read_json_only(dict_str):

for k,v in dict_str.items():

if isinstance(v, dict):

read_json_only(v)

else:

dict_result[k] = v

return dict_result

if __name__ == '__main__':

print read_json_only(my_dict)

輸出:{'school': 'HLW', 'name': 'alien', 'country': 'china', 'age': '18', 'phone': '13800138000', 'gender': 'man', 'address': 'beijing'}

注意,for循環(huán)過程return只返回第一次滿足條件的結(jié)果,會出現(xiàn)其余的沒有返回的問題。

總結(jié)

以上是生活随笔為你收集整理的python递归面试题_python面试题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。