日、12未知のコンテンツ

コンテンツ今日

  • 再帰関数

  • 二分法

  • 式のトリプレット

  • 式のリスト

  • 式の辞書

  • 無名関数

  • 一般的に使用される組み込み関数

再帰関数

1.再帰関数とは何ですか

いわゆる再帰関数は、関数の実行条件が呼び出しを停止する満たされず、その結果を出力するまで繰り返し呼び出しが続く、その内部に関数の関数呼び出しであります

図2に示すように、二段再帰関数

再帰関数を実行することは、それぞれ、二相に分け、及び再帰をバックトラックすることができます。

戻る:それが再び繰り返され、再びもちろん、この反復プロセスは、最終的な終了条件があるまで削減され、各反復の問題の複雑さに基づいている必要があります。

再帰:何度も何度もプロセスをプッシュバックします。

3、再帰関数が使用され

再帰関数を使用している場合のみ、我々は缶の終わりの状態を把握する必要があり、サイクル数を考慮する必要はありません。

条件は再帰関数を超えていない場合は、常に、1000倍までのpython内部制限を実行する、再帰的な層のosモジュールを呼び出すことによって変更することができます。再帰のあまりに多くの層がメモリに非常に友好的ではない、制限を変更することはお勧めしません。

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 (...))

値は、単一層の値として決定されます。

第四に、式のリスト

リスト式:満たし、リスト内の条件の値は、新しいリストを生成します。

基本的な形態:RESの=は、[リストに追加要素のための要素のリストに追加満たしている場合、血管条件決意のタイプのデータタイプ]

= 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つの和の要素を取得します
。#たびに取得結果および添加後の時間をして、コメントを追加

 

おすすめ

転載: www.cnblogs.com/le-le666/p/11184342.html