イテレータ|式のトリプレット|ビルダー

輸入 NPとしてnumpyの
「」 ' 
反復を:得られた結果は、最後の(置換)の各結果に基づいて
イテレータプロトコル:次のオブジェクトは、メソッドを実行するための方法を提供しなければならない、またはイテレータへの復帰、または異常原因
イテレート可能オブジェクトを(保存メモリ):イテレータプロトコルオブジェクトを実装(内部:__ ITER __()メソッド)


性質を循環させるための:、すべてのイテレータプロトコルのすべてのオブジェクトを循環させる
ループ用に(SEQ [文字列、リスト、祖先]を繰り返すことができ、非シーケンシャル[辞書、ファイルオブジェクトのコレクションは、])
「」「」
「」
、Q&:(文字列、リスト、タプル、辞書、コレクション、ファイルオブジェクト)はイテラブルでない
サイクルがその内部__iter__呼び出すだけのために反復可能オブジェクトにそれらを持参する方法
' 『』
= X ' ハロー' 
プリント(DIR(X))      #1 #ビュー方式対応 
iter_test = X. __iter__()     ##文字列オブジェクトイテレータする
印刷(iter_test)  #<0x000001FE5A566550 ATオブジェクトstr_iterator>イテレータオブジェクトメモリアドレスの
印刷(iter_test。__next__ ())
 を印刷(iter_test。__next__ ())
 を印刷(iter_test。__next__ ())
 を印刷(iter_test。__next__ ())
 を印刷(iter_test。__next__ ())
印刷(iter_test .__次__( ))
'' '
概要:ループの文字列オブジェクト(内部分析):
1.まず、__iter __のは、()反復可能オブジェクトに変換され、
( -親-子の神)2.そして__nextの__()を反復処理
3.自動キャッチ例外
' 『』

アクセス(文字列、リスト、タプル)##配列クラス 
LIS = [0,1,2,3,4 ]
 のための I におけるLIS:
     プリント(I)

#1 #イテレータプロトコル値(最初のイテレータオブジェクトになります) 
iter_lis = LIS。__iter__ ()
 プリント(iter_lis。__next__ ())

#1 #横断指数 
インデックス= 0
 一方のインデックス< LEN(LIS):
     プリント(LIS [I])
    インデックス。+ = 1 ##の非連続型(辞書、ドキュメントオブジェクトのコレクション)
#の集合 
S = {1,2,3 }


以下のための:■
     プリント(I)
解析 
iter_s =秒。__iter__ ()
 プリント(iter_s)
 プリント(iter_s。__next__ ())
 プリント(iter_s。__next__ ())
 プリント(iter_s。__next__ ()) #
 字典 
DIC = { ' ':1、' B ':2 } 
iter_dic = DIC。__iter__ ()
 プリント(iter_dic。__next__())    ##取出的キー是

#Fileオブジェクト(作業ディレクトリにファイルを作成) 
F =オープン(' test.txtの'' R&LT + '、エンコーディング= ' UTF-8 ' I Fにおける場合:     プリント(I)

iter_f = F. __iter__が()
 印刷(iter_f。__next__()、エンド= '  ' を印刷(iter_f。__next__()、エンド= '  ' を印刷(iter_f。__next__()、エンド= '  ' を印刷(iter_f。__next__()、エンド='  ' 

#Next()は、ターゲットの繰り返しオブジェクトになることがあり、次に__は(.__呼び出し) 
DIC1 = { ' A ':1、' B ':2、' C ':3 } 
iter_dic1 = DIC1 __iter__ ()
 印刷(次へ(iter_dic1))
 プリント(次へ(iter_dic1))
 プリント(次へ(iter_dic1))
イテレータ - イテレータプロトコル - イテレート可能オブジェクト

 

 

生成特性:[イテレート可能オブジェクト]

1.自動的にプロトコルイテレータ
(その後、ステップごとに、一時停止、およびに行く)、その後、次を実行し、結果を返し、状態が残っている時間:yield文:2にジェネレータ関数を
式のトリプレットを解析する3.リスト
を生成4.表現:
「」'
と#三項演算子 
名= アレックス
RES1 = 真の前に IF名== アレックス  偽の後に
RES2 = 真の前に IF名== レックス  偽の後に
印刷(RES1 、RES2)
 「' 
真の前に、それは[真]、RESの=と判定された場合」「
と判定された場合、[偽]、RES =」の後に偽「
」「」

#分析リスト2元 
LIS = [I  I におけるレンジ(10 )]
 を印刷(LIS)
3元の 
LIS1は= [ ' 卵S%'%Iのための I における範囲(10)IF I>。5 ]
 プリント(LIS1)
式のトリプレット - リストの内包

 

ビルダー:ジェネレータ式(分析リスト[]()付き)yield文ジェネレータ機能2

#1 #1。ジェネレータ式メモリに対して、より経済的([])(で解決リスト)解析されたリスト 
(laomuji = ' 卵S%'%I のための I における範囲(10 ))
 プリント(laomuji) <ジェネレーター<genexpr> 0x00000218948C2318 ATオブジェクト> 
印刷(laomuji。__next__ ())
 を印刷(laomuji。__next__ ())
 を印刷(laomuji。__next__ ())
 を印刷(次(laomuji))

を印刷(SUM(X ** 2をするために X 範囲(4))) 直接計算#ジェネレータ式
印刷(SUM([X ** 2  X範囲(4)]))#1 #ジェネレータ式リストを生成し、その後、計算
#1 #2ジェネレータ関数を
DEF GenerateData(のBatchSize = 100 ):
    train_x = np.linspace(-1,1、のBatchSize) #                       #演算シーケンス(一次元配列) 
    train_y = 2 * + np.random.randn train_x(train_x.shape *)0.3 *    ##ノイズY = ZX(一次元配列)を加え
    #1 #のnp.random.randnを(形状)は0を含むがこれの乱数を除く、0~1の間に発生する

    降伏、train_yのtrain_xを       #1 #は、トレーニングデータ生成方式XにYを返すように
するための I 。(レンジ5 のための X、Y におけるGenerateData():
         印刷(X [:3 ])
         を印刷([3])
ビルダー:二つの形式

 

 



おすすめ

転載: www.cnblogs.com/liuhuacai/p/11505723.html