Pythonコンビエンス


Pythonのいくつかの機能は、より簡潔なコードを書くためによりconvienentになります.機能の各機能は、しかし、ほとんどの回の機能の明確な式のアカウントをアカウントを他のPythonの機能で達成することができます.それらを後から見ましょう.

条件式
expr1 if condition else expr2
上記の構文はステートメントと等価です.
condition ? expr1 : expr2
JavaやC++に慣れている人たちに.条件式がtrueの場合、化合物式はexpr 1になります.以下に例を示します.
関数に引数として最大数を送るゴールを考えてみましょう.
a,b = 4,5
if a > b:
   param = a
else:
   param = b
result = foo(param)
上記のコードの目的は、以下のいずれかで達成することができます.
a,b = 4,5
param = a if a > b else b
result = foo(param)
実際には、結果を引数として直接渡すことはできません.
a,b = 4,5
result = foo(a if a > b else b)
ソースコードを短くすることで、面倒なコードを読み理解することが容易になります.ただし、ソースコードの読みやすさを向上させる場合にのみ条件式を使用することが推奨されます.

理解構文
ほとんどの場合、タスクは別のシリーズの処理に基づいて値の1つのシリーズを生成することがあります.これは理解構文で簡単に実現できます.データ型に従って、異なる構文の構文があります.つのリストから別のリストまで値を計算する例として以下のコードを使いましょう.
list1 = [1,2,3,4]
list2 = []
for num in list1:
    list2.append(num*num)
異なるconatainer型のための理解構文を使用することによって、より短い、よりきれいな方法で上記の同じ結果を達成することができます.
list2 = [ num*num for num in list1 ] #list comprehension
{ num*num for num in list1 } #set comprehension
( num*num for num in list1 ) #generator comprehension
{ num :num*num for num in list1 } #dictionary comprehension
結果が格納される必要がないとき、ジェネレータ構文は特に魅力的です
メモリーで.

シーケンスのパッキングとアンパック
packとunpackはタプルやその他のデータ型で使用されます.
以下のコードで例を示します.
values = 4,5,6,7
自動的にタプル(4 , 5 , 6 , 7)に割り当てられる識別子値の結果.この動作はタプルの自動パッキングとして知られています.
用途の一つは関数から複数の値を返すことです.
return x,y,z
タプル( x , y , z )を返す
Pythonはまた、関数fooから返される値がタプル( x , y , z )であれば、タプルを展開する方法を提供します.これは、タプル内の各値を識別子に割り当てることによって解凍できます.
x,y,z = foo()

a,b,c = (1,2,3) # a = 1, b = 2, c = 3

for x, y in [ (7, 2), (5, 8), (6, 4) ]: # x = 7, y = 2 | x = 5, y = 8 |... and so on

同時割り当て
同時割り当ては同時にパッキングとアンパッキングの組み合わせです.
a,b,c = 1, 2, 3

同時割り当ての良い使用は、変数に含まれる値を交換することです.通常、2つの変数間の値をスワップするには、3番目の変数tempが必要です.
a = 5
b = 6
temp = a # temp = 5
a = b # a is now 6
b = temp # b is now 5
上記の同じコードは、以下に示すように2行のコードでクリーナーで短い方法で実現できます.
a,b = 5, 6
a,b = b, a

我々は、同じゴールを達成している間、より良いコードを書く方法を見ました.私は、これはあなたのスキル、読書のおかげでより多くの値を追加願っています.