この記事では、Pythonリストの理解操作について説明します。次のように、参照用にあなたと共有してください:
Pythonの強力な機能の1つは、リストの解析です。これは、リスト内の各要素に関数を適用することにより、あるリストを別のリストにマップするコンパクトな方法を提供します。
リスト内包表記、リスト内包表記とも呼ばれます(リスト内包表記)
リストの理解は、特に大規模なデータセットの場合よりも合理化され、高速になります
リストの理解は、マップとフィルターが必要なほとんどの場合に取って代わることができます
リスト内包表記は、map()、filter()、およびlambdaを使用せずにリンクされたリストを作成する簡単な方法を提供します。通常、コンストラクターを使用してこれらのリストを作成するよりも、定義された方法でリストを取得する方が明確です。各リスト内包表記には、forステートメントの後の式と、0個以上のforまたはifステートメントが含まれます。戻り値は、forまたはif句の後の式から取得された要素のリストです。タプルを取得する場合は、括弧を追加する必要があります。
基本
[ x for x inrange(5)] # [0,1,2,3,4]
l1 =[1,2,3,4][ x*2for x in l1] #[2,4,6,8]
複数の値
[' %s = %s'for(k, v)in a_map.items()]
2サイクル
l1 =[1,2,3,4]
l2 =[1,2,3,4][x+y for x in l1 for y in l2][2,3,4,5,3,4,5,6,4,5,6,7,5,6,7,8]
関数を呼び出すことができます
[ func(x)for x in l1] #マップに相当
リスト内包表記は元のリストの値を変更せず、新しいリストを作成することに注意してください
[ x for x inrange(100)if x%2==0]
mat =[[1,2,3],[4,5,6],[7,8,9]]
交換ランク
[[ row[i]for row in mat]for i in(0,1,2)] #[[1,4,7],[2,5,8],[3,6,9]]
インデックスに従って要素をフェッチする場合、境界チェックが必要です。IndexErrorスライスフェッチ、不要、境界を超えても異常ではありません。
繰り返しでリストを変更します。安全ではないことに注意してください。これを行うことはお勧めしませんが、l1 [:]:l1.insert()……でiを実行できます。
複数のリストを1つに
[' a','b',.....],['a','b'.....]['a','b'.....]
になる
[' a','b',.....,'a','b'.....'a','b'.....]
扱う
sum([['a','b'],['a','b'],['a','b']],[])['a','b','a','b','a','b']list(itertools .chain(['a','b'],['a','b'],['a','b']))['a','b','a','b','a','b']
上記の操作により、リストをスタックまたはキューとして簡単に使用できることがわかります。
もちろん、彼らは独自のモジュールを持っています、あなたは関連するライブラリをチェックすることができます
5. シーケンス関連モジュール
array制限された可変シーケンスタイプ。すべての要素が同じタイプである必要があります。
コピーは、浅いコピーと深いコピー機能を提供します
operatorには、operator.concat(m、n)などの関数呼び出しの形式のシーケンス演算子が含まれます。m+ nと同等です。
再規則的な表現
タイプには、Pythonでサポートされているすべてのタイプが含まれます
コレクションの高性能コンテナデータタイプ
Python関連のコンテンツの詳細については、このサイトのトピック「Pythonリスト(リスト)操作スキルの概要」、「Python文字列操作スキルの概要」、「Pythonデータ構造とアルゴリズムのチュートリアル」、「Python関数の使用スキルの概要」を参照してください。 Pythonエントリと高度なクラシックチュートリアル」および「Pythonファイルとディレクトリの操作スキルの概要」
この記事がPythonプログラミングに役立つことを願っています。
Recommended Posts