Day14.2顔の質問、スライディングシーケンス

1.シーケンス摺動面質問

#のジョブ:パラメータnの値に基づいて配列スライド可能なカスタム関数、容器(ZIP)に対応する要素
「」" 
listvar = [1,2,3,4,5,6,7,8,9 ] 
N-2 = 
listvar = [1,2]、[3,4]、[5,6]、[7,8] 
N- = 3 
listvar = [[1,2,3]、[4,5、 6]、[7,8,9] 
N- = 4 
listvar = [1,2,3,4]、[5,6,7,8]] 
"" "
"" " 复习
LST1 = [1.5] 
LST2 = [2.6] 
lst3 = [3.7] 
lst4 = [4.8] 
それはZIP(LST1、LST2、lst3、lst4)= 
プリント(リスト(それ))

#1 [(1,2)、(3,4)、(5,6)、(7,8)] 
#N = 2 
LST1 = [1、3、5、7、9] listvar [0 :: 2]#0 2 4 6 8 
LST2 = [2、4、6、8] listvar [1 :: 2] 
はZIP(LST1、LST2)= 
プリント(リスト(IT))

#listvar = [1.2、 3]、[4,5,6]、[7,8,9]] 
N = 3 
LST1 = [1,4,7] listvar [3 :: 0]#0 3 6 
LST2 = [2,5,8- ] listvar [1 :: 3] 
lst3 = [3,6,9] listvar [2 :: 3]は
、それが= ZIP(LST1、LST2、lst3)

#listvar = [1,2,3,4]、[5 、6,7,8] 
LST1 = [1,5,9-] listvar [0 :: 4]#0 4 8 
LST2 = [2,6] listvar [1 :: 4] 6月2日
lst3 = [3,7] listvar [2 :: 4]
lst4 = [4,8] listvar [3 :: 4]は
、それは、ZIP(LST1、LST2、lst3、lst4)= 

範囲(4)
""」
N = 2 LST1 = [1、3、5、7、9 ] #listvar [0 :: 2]#0 2 4 6 8 LST2 = [2、4、6、8] #listvar [1 :: 2] 、それが= ZIP(LST1、LST2)
#1 プリント(リスト(それ))ZIP(listvar [0 :: 2]、listvar [1 :: 2])


listvar = [1,2,3,4,5,6,7,8,9 ] 
N = 2 
のRES = [listvar [ iがN] ::  I (N)]の範囲
 プリント(RES)
[1、3、5、7、9]、[2、4、6、8] 

N = 3 
RES= [Listvar [:: N-1] のための I におけるレンジ(N)]
 プリント(RES)
[1 ,. 4 ,. 7]、[2 ,. 5 ,. 8]、[3 ,. 6 ,. 9] 

N- = 4 
RESの [[listvar :: N-I] =  I におけるレンジ(N)]
 プリント(RES)
  [1 ,. 5 ,. 9]、[2 ,. 6]、[3 ,. 7]、[4 ,. 8] 

割当のうちZIPなどのパラメータのリストのうち、すべてのほとんどの大規模なリストプロセスバージョン 
N- 5 = 
ITは、ジップ=(* [[listvar :: N-1] のための I における範囲(N)])
 プリント(リスト(IT))
 #1 [(1,2 ,. 3 ,. 4 ,. 5)] 

のジェネリックバージョン
DEFFUNC(listvar、N-):
     リターン([listvar [:: N-I] * ZIP ための I におけるレンジ(N)])
RES = FUNC(listvar、2 印刷(一覧(RES))
 #1 [(1、2)。 、(3,4)、(5,6)、(7,8)] 最適化されたバージョン 
FUNC = ラムダ listvar、N-:ZIP(* [listvar [:: N-1] のための I におけるレンジ(N)])
ITを FUNC =(listvar ,. 3 プリント(リスト(IT))
 #1 [(1,2 ,. 3)、(4 ,. 5 ,. 6)、(7 ,. 8 ,. 9)] 
#1 レビュー*及び**魔法使用(関数の呼び出し)が使用される
DEF :FUNC(B、C)
     プリント(B、C)
FUNCパラメータとして割り当てのうち一つずつ間リストの各要素;
listvar = [1,2,3 ] 
FUNC( * listvar)

DEF FUNC(= 1、B = 2、C = 3 ):
     プリント(A、B、C)
1 2 3 
DIC = { ' A ':10 、" B ":12、" C ":13 } 
FUNC( ** DIC)#1 、A = 10、B = 12、C = 13 10 12 13

 

。####2値が数値である
:DEF extendList(ヴァル、一覧= [])
  list.append(ヴァル)
  リターンリスト

LIST1 = extendList(10)
LIST2 = extendList(123、[])
LIST3 = extendList( 'A')

デフォルトの関数パラメータを定義した場合、その値は、それらのメモリに予めコピーを保持します
ユーザーが引数を定義する場合は、ユーザー自身の実際の値を使用して、関数呼び出しの
ユーザーが実際のパラメータを与えない場合は、デフォルトのフォームを使用し、基準値
LIST1 = extendList(10 印刷(LIST1)  [10] 
LIST2 = extendList(123 、[])
 印刷(LIST2)  [123] 
LIST3 = extendList(' A ' プリント(LIST3)  [10]、[A]

 


#### 3.res多少?
DEF FUNC():
  戻り、λX:iが範囲内にiについてXを*(4)]

[FUNCにおけるM用のM(2)()]のRES =
プリント(RES)

4回のサイクルを実行しceshi機能では、4つの円形定義関数
#が呼び出されたときにのみトラバーサル時にのみ定義されていることを指摘し、関数本体を実行する、定義ので、私は変数に直接行くことはありません計算に関与体の機能
#1  最後にLSTリターンを、4つの機能が含まれているLST、関数funcは関数ceshi変数外で使用するので、私は、変数iが閉鎖の特徴である、そのライフサイクル延ばすように
#を リストの内包によって復帰後、4回サイクル通話機能、iは計算に関与する前2この時、
#はiが、i = 3最後ので、各機能の動作結果をサイクルのすべての値端を有するためであります2 * I => 2 *である3 => 6。。 4サイクルため、リストは、4つの生成されるように、6; 
'' ' 

DEF ceshi():
    LSTは= [] 範囲(4)におけるIため
        DEF FUNC( X):
            私は*リターンXの         
        lst.append(FUNC)
    LST戻る


LST = ceshi() 
印刷(LST)
RESの=は(LST)#4でlen 
''」
#1 [ <関数ceshi。0x000001805BB50EA0で<地元> .func>、 <関数ceshi。0x000001805BB50F28で<地元> .func>、 <関数ceshi。<地元の人々 > 0x000001805BB50E18で.func>、 <関数ceshi。<地元> 0x000001805BB85048で.func> ] 
#1 LST = [函数1、函数2、函数3、函数4]

 

分離するために定義された関数や機能でオフィスを呼び出す
#の関数が呼び出された場合にのみ、関数本体を実行します、単にパラメータを含むように定義するとき定義しますが、内部ではない内容が呼び出すために

 

## 4何プリント?
DEF追加(A、B):#通常の総和関数
  の戻りA + B
DEF試験():#ジェネレータ関数
  Iのための範囲(4):
  収率I
G =テスト()
N-用で[2,10]:
  G =(GにおけるIのための追加(N-、I))
を印刷(一覧(G))

「」 " 
ジェネレータは、いずれかのジェネレータ式を使用して2つの方法で使用することができます定義、またはジェネレータ関数を使用し、
内部のコンテンツジェネレータを実行するために呼び出されたときのみのために、次の、注意を払って、すべてのコールジェネレータを一覧表示
し、 Gが=(I N(追加 Gにiについて)) ジェネレータの定義で記述されている
グラムで..のための次の(G) (G)リストコールである


、唯一の発電機2を定義するサイクルタイムではありません呼び出し、次の時刻nを拾い、nは10に等しいことは、有している

第一の呼ジェネレータ
(I、N(追加G =を計算するための I IN(0,1,2,3)の場合)) の結果を与えるために得られたスコープG =(12、13)
第2の呼発生
(、N(私を追加G =算出する I IN(10,11,12,13)用))をレンジG =(20,21得られた結果を与えること、22、23)
強力なターンのためのリストは、リストを取得する[20、21] 
"" "
'「' 
#(G 中のiについてiは、n個(追加))G =私は范围0 1 2 3的
追加を(N、0)=>(10,0)=> 10追加
アドオンを(N、1)=> (10,1)=> 11追加
アドオン(N、2)=>(10,2)を追加=> 12 
追加(N、3)=>(10,3)を追加=> 13 
G =(10,11、 12,13)

G =)Gでiについて(iはn個(追加)
N、10)=>追加(10,10)=> 20(追加
追加(N、11)=>追加(10,11)= > 21 
の追加(N、12)=>(10,12)を追加=> 22 
追加(N、13)=>追加(10,13)=> 23 
[20,21,22,23]

 

おすすめ

転載: www.cnblogs.com/longerandergou/p/10959822.html