コンテンツ今日
-
再帰関数
-
二分法
-
式のトリプレット
-
式のリスト
-
式の辞書
-
無名関数
-
一般的に使用される組み込み関数
再帰関数
1.再帰関数とは何ですか
いわゆる再帰関数は、関数の実行条件が呼び出しを停止する満たされず、その結果を出力するまで繰り返し呼び出しが続く、その内部に関数の関数呼び出しであります
図2に示すように、二段再帰関数
再帰関数を実行することは、それぞれ、二相に分け、及び再帰をバックトラックすることができます。
戻る:それが再び繰り返され、再びもちろん、この反復プロセスは、最終的な終了条件があるまで削減され、各反復の問題の複雑さに基づいている必要があります。
再帰:何度も何度もプロセスをプッシュバックします。
3、再帰関数が使用され
再帰関数を使用している場合のみ、我々は缶の終わりの状態を把握する必要があり、サイクル数を考慮する必要はありません。
DEF 年齢(N): IF N - 1 ==: #は1 = N-終了条件を有していなければならない リターン 18は 戻り(1-N-)年齢2つの+ RES =年齢(5 ) プリント(RES) #26であります
L = [1、[2、[3、[4、[5、[6、[7、[8、[9、[10、[。11、[12である、[13は、]]]]]]]]] ]]]] DEF (l)をget_num: のために私にリットル: IFタイプ(I)があるINT: 印刷(I) 他: get_num(I) get_num(L) #のループを、すべての数字リットルを印刷します
二分法の第二に、アルゴリズム
アルゴリズム:このアルゴリズムはまだ効率的な方法の問題を解決していません
= 666 target_numの L = [1,3,5,12,57,89,101,123,146,167,179,189,345 ] DEF (L、target_num)get_num: IF ないL: 印刷(' あなたは、このタスクを行うことを恐れないで支払うこと' ) の戻り #は、リストを取得中間インデックス 印刷(L) middle_index = LEN(L)// 2 #はデジタルに対応する大きさとtarget_num middle_indexを決定 IF target_num> L [middle_index]: #は、リストの右半分に切断 num_right = L [middle_indexの+を1 :] #その後、再帰呼び出しのget_num機能 get_num(num_right、target_num) elifの target_num < L [middle_index]: #の左部分のリストカット num_left = L [0:middle_index] #は、再帰関数get_num呼び出し get_num(num_left、target_num) 他: 印刷(' 検索IT ' 、target_num) get_num(L、target_num )
式の第三に、トリプレット
99999 = X Y = 9898898 のRES = Xの場合に X> Y 他のY #前の値への復帰は、次の値がそうでなければ他のある場合ならば、後者の条件が満たされれば プリント(RES) #9898898
式固定トリプル式は次のとおりです。
値RES = 1のIF条件そう 2の値(条件の値が確立される条件が成立していない値2)
複数の層を有する三元表現も決意を入れ子にすることができます。
RES = xであれば、X> Y 他(M もし M> N 他(...))
値は、単一層の値として決定されます。
第四に、式のリスト
リスト式:満たし、リスト内の条件の値は、新しいリストを生成します。
= L [ ' tank_sb '、' nick_sb '、' oscar_sb ' 、 RES = [名前のための名前で L IF name.endswith(' _sb ')] #後者の場合は、他の組み合わせをサポートしていません #を順次内部循環させるためのリストを削除します各要素 #は、その後の条件が満たされたかどうかを決定するハンドオーバは、前のコードのために引き渡されます #条件は直流要素は放棄保持していない場合は 印刷(RES) #[「tank_sb」、「nick_sb」、「oscar_sb」、「sean_sb」を]
式のV.辞書
辞書の式:組成物は、新しいリストを生成するために、辞書内のキーと値のペアで条件を満たしています。
基本的な形態:基本的な形態:RESの= {要素の健全性値は、データ型で、iについてjは、組成物の条件を満たしている場合、血管条件決意のタイプ}
L1 = [ ' 名前'、' パスワード'、' 趣味' ] L2 = [ ' ジェイソン'、' 123 '、' DBJ '、' エゴン' ] D = {J:L2 [i]のための I、J で列挙( L1)} プリント(D) #{ '名前': 'ジェイソン'、 'パスワード': '123'、 '趣味': 'DBJ'}
六、無名関数
RES =(ラムダ X、Y、X + Y)(1.2 ) プリント(RES) #3
一般的には無名関数と組み込み関数を使用
七一般的に使用される組み込み関数
#地図ソート、フィルタ減らすZIP #地図マップ Lを= [1,2,3,4,5,6 ] #の印刷(一覧( 'こんにちは')) 印刷(リスト(地図(ラムダ X:X + 5、L)) ) #に基づいてループの[6、7、8、9、10、11] #のループファスナー#ためのZIPベース L1 = [1,2 、] L2 = [ ' ジェイソン'、' エゴン'、' タンク' ] L3 = [ ' A '、' B '、' C ' ] 印刷(リスト(ZIP(L1、L2、L3))) #1 [(1 'ジェイソン'、 'A')、(2 'エゴン'、 'B')] #コンテナ要素の種類の数ときジップ同じではない、データ要素のタイプの容器内の要素の最小数の結果として得られる要素の数 L = [1,2,3,4,5,6 ] 印刷(リスト(フィルタ(ラムダ X:X =! 。3、L))) #1 [1、2 ,. 4 ,. 5 ,. 6]のためのベースサイクル #は条件要素の条件に応じて、満足しない濾過、要素が条件を満たすように戻り L = [ 「ジェイソン」、「エゴン」、' ニック' ' 戦車' ] 印刷(ソート(L、リバース=真)) #1 ['タンク''ニック''ジェイソン''そこ「] #各文字列、ASCIIコード値の最初の文字を比較するとき、Lは要素の文字列である場合 #デジタルの大きさに応じて、L個の要素がデジタルである比較 位逆が真である場合にときに、左右、小から大への #降順で、左から右に偽の値が反転する から functools インポート減らす Lを = [1,2,3,4,5,6 ] 印刷(減らす(ラムダ X、 Y:X + Y、L ,. 19)) #40 #19の初期値は、各パラメータを取ること加算を行い、そして全ての数算出 #初期値は次のルールに従って存在しない場合 #最初の開始を2つの和の要素を取得します 。#たびに取得結果および添加後の時間をして、コメントを追加