python怎麼用遞迴的方法判斷數是不是在巢狀迴圈裡,如search

2022-05-17 08:02:22 字數 3193 閱讀 5319

1樓:匿名使用者

def search(arr,v,):

if not arr:

return false

item,rest=arr[0],arr[1:]if isinstance(item,(list,tuple)):

return true if search(item,v) else search(rest,v)

return true if item==v else search(rest,v)

if __name__=='__main__':

arr=[1,[2,3],4,[5,[6,,[8,9],10]]]test_v=[100,1,5,6,20,100]for v in test_v:

print(v,search(arr,v))

2樓:匿名使用者

參考了 napo1987 的答案,其答案很有lisp的風格,在這個基礎上search1則更加傾向於python風格。而search2則可以識別某個元素(其本身可以是列表)是否存在於列表中

def search(arr,v):

if not arr:

return false

item,rest=arr[0],arr[1:]if isinstance(item,(list,tuple)):

return true if search(item,v) else search(rest,v)

if item==v:

return true

return search(rest,v)def search1(arr,v):

if type(arr) in (tuple,list):

for item in arr:

if search1(item,v):

return true

else:

if arr==v:

return true

return false

def search2(arr,v):

if arr==v:

return true

elif type(arr) in (tuple,list):

for item in arr:

if search2(item,v):

return true

return false

if __name__=='__main__':

arr=[1,[2,3],4,[5,[6,,[8,9],10]]]test_v=[100,1,5,6,20,100]for v in test_v:

print(v,search2(arr,v))v=[8,9]

print(v,search2(arr,v))

3樓:匿名使用者

最後一行列印(cal(eval(lis)))無法進入前提是錯誤的,形如[1,2,3,4]

python裡如何用遞迴法列出一個tree裡所有的枝幹? 15

4樓:山水阿銳

您好:perm函式輸出的是引數list從引數k位置開始,到引數m位置結束的全排列

def perm(list,k,m):

if k==m:

for i in range(m+1): # 遞迴的結束條件是k==m,在整個遞迴過程中引數m(即結束位置沒有改變),而引數k則每次遞迴+1

print list[i], # 輸出遞迴結束時的list狀態

print

else:

for i in range(k,m+1): # 該迴圈用來負責生成遞迴的下一個狀態

list[k],list[i]=list[i],list[k] # 將list的k位置與每一個位置i分別交換

perm(list,k+1,m) # 由於k位置與每一個位置i交換,也即k位置所有可能選值都已被窮舉,此時只需要繼續計算k+1之後的職位即可,因此以k+1為開始位置,結束位置m不變進入下一層遞迴

list[k],list[i]=list[i],list[k] # 由於list是引用傳遞,因此需要在位置交換之後重新交換,以保證list不變。

python如何無限遍歷字典中的value,在不知道字典裡面有幾層字典的時候 50

5樓:

遞迴。用這個函式把dict裡面的所有value用遞迴的方法提取到一個空list裡面

希望對你有幫助

請問python中類裡面的方法可以遞迴嗎?如果可以遞迴的話怎麼用?

6樓:匿名使用者

>>> class recursion:

... def method(self,n):

... if n==1:return 1... return n*self.method(n-1)

...>>> a=recursion()

>>> a.method(5)

120就像普通遞迴一樣版呼叫權

7樓:匿名使用者

遞迴bai求du

zhi1-i的平

dao方版和權

8樓:匿名使用者

完全可以啊,和函式一樣的寫法。只是多一個引數self

小白請教python的 巢狀for迴圈

9樓:匿名使用者

第一次執行第一條語句,x的值為-2,然後進入內迴圈。

執行第二條語句,z的值依次賦為1和-1,然後分別列印-21\n-2-1\n。(注意\n為換行符,python中每個print結束,系統自動加入一個換行符,如果print語句後面新增一個逗號:print x,z,,就不會列印換行符了)。

第二次執行第一條語句,x的值為0,然後進入內迴圈。

執行第二條語句,z的值依次賦為1和-1,然後分別列印01\n0-1\n。

第三次執行第一條語句,x的值為2,然後進入內迴圈。

執行第二條語句,z的值依次賦為1和-1,然後分別列印21\n2-1\n。

10樓:_晨曦子

外迴圈先提取一個資料x=-2,

然後轉入內迴圈,內循依次環提取資料z=1,輸出-2,1z=-1,輸出-2,-1

內迴圈完畢,再跳到外迴圈提取下一個資料x=0,接著轉入內迴圈,依次下去

java怎麼用遞迴方法來求1!2!3n

int sum 0,n,sub 1 for int i 1 i java,以遞迴方式計算1 2 3 10 的和 計算階乘 param i 要計算的數 return 階乘結果 public static long count long i 希望能幫助你 public int add int start...

python中timedelta方法怎麼用

usr bin python coding utf 8from datetime import datetime,timedelta timedelta代表兩個datetime之間的時間差 now datetime.now past past datetime 2010,11,12,13,14,15...

c語言用遞迴顛倒棧動態棧不知道怎麼遞迴

按照題意應該是一個 int i 1 用來給陣列需要賦值定位到具體儲存單元,此處從陣列第二開始賦值。下表0第一 int a 入棧單元用來臨時儲存資料 f n else f n 1 出棧是逆序儲存到儲存單元 此例為了方便,上面的是加了一個陣列。你可以直接使用一個陣列,使用對換的方法。僅供參考。如何設計遞...