Python には、非常に Python 固有の特別な関数がいくつか組み込まれています。コードをより簡潔にすることができます。
例を見てみましょう:
1 filter(function, sequence):
str = ['a', 'b', 'c', 'd']
def fun1(s): return s if s ! = 'a' else None
ret = filter(fun1, str)
print ret
## ['b', 'c', 'd']
内の項目に対して function(item) を実行しますシーケンスを 1 つずつ実行し、実行結果が True の項目をリスト/文字列/タプル (シーケンスの種類に応じて) に構成して返します。
はフィルター関数として見ることができます。
2 map(関数, シーケンス)
str = ['a', 'b', 'c', 'd']
def fun2(s): return s + ".txt"
ret = マップ(fun2, str)
print ret
## ['a.txt', 'b.txt', 'c.txt', 'd.txt']
項目に対して関数(item)を順番に実行する1 つずつ )、実行結果をリスト形式で確認して返します:
map は複数のシーケンスもサポートしており、関数が対応する数のパラメーター入力もサポートする必要があります:
def add(x, y): return x+ y
print map(add, range(10), range(10))
##[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
3reduce(function, sequence, starting_value): def add1(x,y): return x + y
print reduce(add1, range(1, 100))
print reduce(add1, range(1, 100), 20)
# # 4950 (注: 1 +2+...+99)
## 4970 (注: 1+2+...+99+20)
シーケンス内の項目がある場合は、その関数を繰り返し呼び出します。は starting_value であり、初期値としても使用できます。たとえば、次のように List を合計するために使用できます。
4 lambda:
g = lambda s: s + ".fsh"
print g( "haha")
print (lambda x: x * 2) ( 3)
## haha.fsh
## 6
これは Python でサポートされている興味深い構文で、単一のline の最小限の関数。C 言語のマクロに似ており、これらの関数はラムダと呼ばれます。