# 見 代碼? ?,代碼粘貼上不帶格式,按照圖片用tab鍵調(diào)整一下,圖片是核心部分
創(chuàng)新互聯(lián)建站主營濱海網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,成都App定制開發(fā),濱海h5小程序定制開發(fā)搭建,濱海網(wǎng)站營銷推廣歡迎濱海等地區(qū)企業(yè)咨詢
simple_dict?=?{
'Large_dict'?:?{'middle_dict1'?:?{'small_dict1'?:?1?,
'small_dict2'?:?2},
'middle_dict2'?:?{'small_dict3'?:?3?,
'small_dict4'?:?4,
'small_dict5':{'small_dict10'?:?1?,
'small_dict22'?:?3},
},
}
}
#?需求分析:?從嵌套字典中,找到值為3的??路徑關(guān)系
#?簡化模型:從value為3的值?遞歸向上層的?key?,遞歸過程保存當前已經(jīng)遞歸的路徑和當前層
#?1.找到字典一共有多少層:
count?=?0
path?=?''#?設(shè)置路徑的全局變量
result?=?[]??#?記錄結(jié)論
def?get_count(dict_test):
global?count??#?聲明每次遞歸均是改變?nèi)肿兞?/p>
global?path??#?拼接檔期啊你的路徑
global?result??#?記錄結(jié)果
for?i?in?dict_test:
if?type(dict_test[i]).__name__?=='dict'?:
#?如果是字典,則繼續(xù)向下展開,即執(zhí)行遞歸:
if?count?==?0:???#?增加判斷?消除第一個?-?出現(xiàn),邏輯問題
path?=?path??+?i
else:
path?=?path?+?'-'?+?i
count?+=?1??#?記錄層數(shù)
get_count(dict_test[i])
else:
try:
#?如果不是字典?則是鍵值對,查詢value值是不是3,當前i包含兩個內(nèi)容,一個是key,一個是value
if?dict_test[i]?==?3:
#?找到了value?=3?的值
result.append(f"路徑是:?%s,在第%d層"?%?(path?+?'-'?+?i,?count))
except?Exception?as??result:??#?雖然字典限定了寫法,為了增加健壯性?此位置使用try指令,避免類型錯誤
print(result)
continue
if?__name__?==?'__main__':
get_count(simple_dict)??#?執(zhí)行遞歸函數(shù)
[print(str(i?+?1)?+?':'?+?j)?for?i,?j?in?enumerate(result)]??#?打印結(jié)果
'''
結(jié)果:
1:路徑是:?Large_dict-middle_dict1-middle_dict2-small_dict3,在第3層
2:路徑是:?Large_dict-middle_dict1-middle_dict2-small_dict5-small_dict22,在第4層
'''
數(shù)學相關(guān)
abs(a) : 求取絕對值。abs(-1)
max(list) : 求取list最大值。max([1,2,3])
min(list) : 求取list最小值。min([1,2,3])
sum(list) : 求取list元素的和。 sum([1,2,3]) 6
sorted(list) : 排序,返回排序后的list。
len(list) : list長度,len([1,2,3])
divmod(a,b): 獲取商和余數(shù)。 divmod(5,2) (2,1)
pow(a,b) : 獲取乘方數(shù)。pow(2,3) 8
round(a,b) : 獲取指定位數(shù)的小數(shù)。a代表浮點數(shù),b代表要保留的位數(shù)。round(3.1415926,2) 3.14
range(a[,b]) : 生成一個a到b的數(shù)組,左閉右開。range(1,10) [1,2,3,4,5,6,7,8,9]
類型轉(zhuǎn)換
int(str) : 轉(zhuǎn)換為int型。int('1') 1
float(int/str) : 將int型或字符型轉(zhuǎn)換為浮點型。float('1') 1.0
str(int) : 轉(zhuǎn)換為字符型。str(1) '1'
bool(int) : 轉(zhuǎn)換為布爾類型。 str(0) False str(None) False
bytes(str,code) : 接收一個字符串,與所要編碼的格式,返回一個字節(jié)流類型。bytes('abc', 'utf-8') b'abc' bytes(u'爬蟲', 'utf-8') b'xe7x88xacxe8x99xab'
list(iterable) : 轉(zhuǎn)換為list。 list((1,2,3)) [1,2,3]
iter(iterable): 返回一個可迭代的對象。 iter([1,2,3]) list_iterator object at 0x0000000003813B00
dict(iterable) : 轉(zhuǎn)換為dict。 dict([('a', 1), ('b', 2), ('c', 3)]) {'a':1, 'b':2, 'c':3}
enumerate(iterable) : 返回一個枚舉對象。
tuple(iterable) : 轉(zhuǎn)換為tuple。 tuple([1,2,3]) (1,2,3)
set(iterable) : 轉(zhuǎn)換為set。 set([1,4,2,4,3,5]) {1,2,3,4,5} set({1:'a',2:'b',3:'c'}) {1,2,3}
hex(int) : 轉(zhuǎn)換為16進制。hex(1024) '0x400'
oct(int) : 轉(zhuǎn)換為8進制。 oct(1024) '0o2000'
bin(int) : 轉(zhuǎn)換為2進制。 bin(1024) '0b10000000000'
chr(int) : 轉(zhuǎn)換數(shù)字為相應ASCI碼字符。 chr(65) 'A'
ord(str) : 轉(zhuǎn)換ASCI字符為相應的數(shù)字。 ord('A') 65
相關(guān)操作
eval****() : 執(zhí)行一個表達式,或字符串作為運算。 eval('1+1') 2
exec() : 執(zhí)行python語句。 exec('print("Python")') Python
filter(func, iterable) : 通過判斷函數(shù)fun,篩選符合條件的元素。 filter(lambda x: x3, [1,2,3,4,5,6]) filter object at 0x0000000003813828
map(func, *iterable) : 將func用于每個iterable對象。 map(lambda a,b: a+b, [1,2,3,4], [5,6,7]) [6,8,10]
zip(*iterable) : 將iterable分組合并。返回一個zip對象。 list(zip([1,2,3],[4,5,6])) [(1, 4), (2, 5), (3, 6)]
type():返回一個對象的類型。
id(): 返回一個對象的唯一標識值。
hash(object):返回一個對象的hash值,具有相同值的object具有相同的hash值。 hash('python') 7070808359261009780
help():調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)。
isinstance():判斷一個對象是否為該類的一個實例。
issubclass():判斷一個類是否為另一個類的子類。
globals() : 返回當前全局變量的字典。
next(iterator[, default]) : 接收一個迭代器,返回迭代器中的數(shù)值,如果設(shè)置了default,則當?shù)髦械脑乇闅v后,輸出default內(nèi)容。
reversed(sequence) : 生成一個反轉(zhuǎn)序列的迭代器。 reversed('abc') ['c','b','a']
1.1 例如:print(hex(2))案例
1.2 輸出函數(shù):print(hex(2))
1.3 輸出結(jié)果:0x2
1.4 解析說明:返回16進制的數(shù)。
2.1 例如:print(chr(10))案例
2.2 輸出函數(shù):print(chr(10))
2.3 輸出結(jié)果:0o12
2.4 解析說明:返回當前整數(shù)對應的ASCll碼
3.1 例如:print(ord("b"))案例
3.2 輸出函數(shù):print(ord("b"))
3.3 輸出結(jié)果:98
3.4 解析說明:返回當前ASCll碼的10進制數(shù)
4.1 例如:print(chr(97))
4.2 輸出函數(shù):print(chr(97))
4.3 輸出結(jié)果:b
4.4 解析說明:返回當前ASCll碼的10進制數(shù)。
案例一:給你一個字符串,s = 'hello kitty'
1.1 輸出函數(shù):print(s.capitalize())
1.2 輸出結(jié)果:0x2
1.3 解析說明:返回16進制的數(shù)。
2.1輸出函數(shù):print(s.replace('kitty','kuang'))
2.2 輸出結(jié)果:hello kuang
2.3 解析說明:替換功能,將kitty換成kuang。
2.4 輸出函數(shù):print(s.replace('4','KK'))
2.5 輸出結(jié)果:12KK12KK
2.6 解析說明:所有的4都替換成KK
2.7 輸出函數(shù):print(s.replace('4','KK'))
2.8 輸出結(jié)果:12KK12KK124
2.9 解析說明:將前兩個的4替換成go
案例一:給你一個字符串,ip = '192.168.1.1'
3.1 輸出函數(shù):print(ip.split(','))
3.2 輸出結(jié)果:['192.168.1.1']
3.3 解析說明:將字符串分割成列表
案例一:給你一個字符串,ip = '192.168.1.1'
3.3 輸出函數(shù):print(ip.split(',',2))
3.4 輸出結(jié)果:['192.168.1.1']
3.5 解析說明:從第二個開始分割成列表
當前名稱:python3多層函數(shù) python怎么跳出多層循環(huán)
網(wǎng)站路徑:http://jinyejixie.com/article8/doseeip.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、營銷型網(wǎng)站建設(shè)、定制網(wǎng)站、做網(wǎng)站、云服務器、面包屑導航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)