発電機、組み込み関数と表現

ジェネレータ

1.発電機は何ですか?生成ツール。Builderは、イテレータは、イテレータの性質である「カスタム」です。

2.発電を達成するためにどのように内部関数は、歩留まりを定義したときに、関数を呼び出すとき、関数本体のコードが実行されていない発電機で結果を返します。

収量:収量付加価値がジェネレータオブジェクトに生まれ変わるたびに。-唯一の関数定義内の利回り-降伏関数は、一時停止の状態を保存することができます

収量とリターン:同じポイントは:数の値が無制限で返します。

異なる点:リターン値のみを返す、収率が複数の値を返すことができます。

Pythonのイテレータオブジェクトが生成されたイテレータを建て

iter_list = LIST1 .__ ITER __()

#カスタムイテレータ

デフ)(FUNC:

( 'FUNCから')印刷

収量「タンク」

RES = FUNC()

#私たちは、次__ __によって価値をすると、関数本体のコードを実行します。

印刷(RES .__次__())

10サイクル

のための I における範囲(1,11 ):
プリント(I)        1〜10 

範囲(:python2 1,5)---> [1,2 ,. 3 ,. 4 ] 

のpython3全範囲( 1、。 5)--->範囲は---オブジェクト>ジェネレータ----> イテレータ

RES =レンジ(1,5 

プリント(RES)
 カスタム機能範囲、カスタムジェネレータの作成

 #を#start - > 1、エンド---> 5、移動= 2(1 ,. 3。)。。

 DEF My_Range(開始、終了、移動= 1。 ):
 しばらくスタート< 終了
 収量をスタート
 
 スタート+ =移動

プロセス指向プログラミング

プロセス指向のプログラミングは、プログラミングのアイデアです。

プロセス指向プログラミング:コアは、「プロセスの言葉では、プロセスを指し行い、次に行うことです問題解決の手順、ある工場の組立ラインの設計、思考の機械的な方法のようなプログラミングのアイデアに基づいて、書き込みプログラムを、 。

利点:

複雑な問題のプロセスを、このように単純化

短所:

現在のプログラムの設計変更の特定の部分ならば、それは他の部分につながると同時に、貧しいスケーラビリティで修正する必要があります。

式のトリプレット

式のトリプレット:

場合...他に...支線になることができます。

構文:

左の場合、条件は、条件が戻り値の権利を保持していない他の条件を決定するために、戻り値を保持しています

もし決意条件:

実行する

他の

実行



見つける2つの大きさの値を

場合...他の構文によって

DEF MAX(num1を、NUM2):
もし NUM1> NUM2:
リターンNUM1 

リターンからnum2の

RES = MAX( 100,20 

印刷(RES)

 > 100

式のトリプレット

デフMAX1(NUM1、NUM2):
    RES = NUM1     場合 NUM1> num2のnum2の
     返却RES 
RES = MAX1(NUM1、NUM2)
 プリント(RES)

式のリスト:

あなたは達成彼の党のリストを生成することができます。構文:=リスト[オブジェクトのそれぞれ任意の値に対して、それぞれに要した値は、反復イテラブルに取り出すことができます]

これは、サイクル数のための権利であり、各値イテレート可能オブジェクトを取り出すことができます

左が現在のリストに値を追加することができますするために

リストは= [各反復の値は、反復可能オブジェクトに引き出すことができます]

リスト= [オブジェクトが反復で決定された場合、反復の各値の値は、オブジェクトを取得することができるであってもよいです]

new_listに添加順次取り出し、リスト内の値は、
リスト = [1,2 ,. 3 ,. 4。] 
new_list = []
 のためのラインのList1:
    new_list.append(ライン)
プリント(new_list) 

常法 
new_list = []
 ラインにおける範囲(1,101 ):
    new_list.append(ライン)
プリント(new_listザ)

#のリストジェネレータ 
リスト= [F ' 1}、{行。'  のためのライン範囲(1,101 )]
 プリント(リスト)

ジェネレータ式

  リストの式:時間を使用してデータ量の場合、[範囲(1ライン分のライン 、6)] ---> [1、2、3、4、5]

   利点:

     インデックス値、便利な値に依存してもよいです

   短所:

     資源の無駄

  • ビルダー式:大量のデータを使用している場合()--->戻りジェネレータ(範囲内の行のための行(1 、6))---> Gの発電機(1、2、3、4、5 )

  利点:

    資源の保存

  短所:

     値は便利ではありません

ジェネレータを生成し1000個の値 
G =(行のための範囲(1、1000001 ))
<ジェネレータオブジェクト<genexpr> AT 0x00000203262318E0> 
印刷(G) 

式が達成一覧 
リスト1 = [ラインのためのライン範囲(1、1000001 )]
 印刷(List1を)

内蔵機能

範囲()

印刷()

のみ()

内蔵内部#pythonを提供する方法

MAX、MIN、並べ替え、マップ、フィルタ

並べ替え:イテレート可能オブジェクトのソート

 

最大値MAX MAX(反復可能オブジェクト)を選択します

リスト= [1、2、3、4、5]

マックスインナー値のために抽出されたそれぞれの値のリスト、及び決意であろう

印刷(最大(リスト))

dict1 = {
    'tank': 1000,
    'egon': 500,
    'sean': 200,
    'jason': 500
}

# 获取dict1中薪资最大的人的名字
# 字符串的比较: ASCII
print(max(dict1, key=lambda x: dict1[x]))


# 获取dict1中薪资最小的人的名字
print(min(dict1, key=lambda x:dict1[x]))
##### sorted: 默认升序(从小到大) reverse:反转 reverse默认是False

list1 = [10, 2, 3, 4, 5]
print(sorted(list1))

##### reverse=True--> 降序

print(sorted(list1, reverse=True))

匿名函数

  无名字的函数

    :左边是参数, 右边是返回值

  lambda :

    PS: 原因,因为没有名字,函数的调用 函数名 + () 匿名函数需要一次性使用。

     注意: 匿名函数单独使用毫无意义,它必须配合 “内置函数” 一起使用的才有意义

有名函数

def func():
    return 1
print(func())  # func函数对象 + ()
print(func())

匿名函数

def  ():
    pass

()  #  + ()
lambda 匿名(): return 1
func = lambda : 1
print(func())
func = lambda : 1
print()

おすすめ

転載: www.cnblogs.com/lvguchujiu/p/11857872.html