Pythonの基本的な便利な操作

Pythonの利便性

リスト内包表記

通常、リストを生成します。

def fun(x):
    return x ** 2
l = []
for i in range(5):
    l.append(fun(i))

実際にはリスト内包表記を使用して簡略化できます。[* for i in *]

[fun(i) for i in range(5)]

同時に、リスト内包表記は複数レベルのネストもサポートします。

In:	[m + '_' + n for m in ['a','b'] for n in ['v','e']]
Out:['a_v', 'a_e', 'b_v', 'b_e']

条件付き代入

例として、リスト内の 5 を超える要素を切り捨てます。つまり、5 を超える要素は 5 に置き換えられ、5 未満の要素は元の値を保持します。

In:		L = [1, 2, 3, 4, 5, 6, 7]
		[i if i <= 5 else 5 for i in L]
Out:	[1, 2, 3, 4, 5, 5, 5]

匿名関数とマップメソッド

関数の定義には一般に明確なマッピング関係があり、無名関数の形式で簡潔に表現できます。

fun = lambda x : x ** 2

しかし、明らかに「匿名性」の意味に違反しています。多くの場合、複数の場所で関数を呼び出す必要はないため、関数の名前は気にせず、マッピング関係だけを気にすることがよくあります。機能の。

(lambda x: x ** 2)(8)
[(lambda x: x ** 2)(i) for i in range(5)]

そして、上記のリスト内包表記の無名関数マッピングは、map 関数を使用して実現します。map はマップ オブジェクトを返します。これはリストごとにリストに変換する必要があります。

list(map(lambda x, y:str(x)+"_"+y,range(5),list('abcde')))

zip オブジェクトと列挙メソッド

  • zip 関数は、複数の反復可能オブジェクトをタプルで構成される反復可能オブジェクトにパックでき、zip オブジェクトを返し、対応するパッケージ化結果はタプルとリストを通じて取得できます。
l1 = ('avd')
l2 = ('efsf')
list(zip(l1,l2))
[('a', 'e'), ('v', 'f'), ('d', 's')]
for i,v in zip(range(len(l)),l):
    print(i,' ',v,)
0   a
1   v
2   r
3   d
  • enumerate は、反復時に反復要素のトラバーサル シーケンス番号をバインドできる特別なパッケージです。
l = list('avrd')
for i, v in enumerate(l):
    print(i,v)
0   a
1   v
2   r
3   d

おすすめ

転載: blog.csdn.net/weixin_64632836/article/details/127695584