リストまたはタプルが与えられた場合、for ループを通じてリストまたはタプルを走査することができます。この走査は反復と呼ばれます。 Python では、反復は for...in で行われます。
dict はリストの順序で保存されないため、反復された結果の順序は異なる可能性があります。デフォルトでは、dict はキーを反復処理します。値を反復したい場合は、d.values() で for value を使用できます。キーと値を同時に反復したい場合は、d.items() で for k, v を使用できます。
文字列は反復可能なオブジェクトでもあるため、for ループでも使用できます。
>>> 「ABC」のチャンネル: ... print(ch) ... あ B C
|
>>> コレクションから Iterable をインポートします >>> isinstance('abc', Iterable) # str が反復可能かどうか 本当 >>> isinstance([1,2,3], Iterable) # リストが反復可能かどうか 本当 >>> isinstance(123, Iterable) # 整数が反復可能かどうか 誤り
|
>>> for i, enumerate(['A', 'B', 'C']): ... print(i, value) ... 0A 1B 2C
|
リスト[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]を生成するには、list(range(1, 11))を使用できます。
リスト生成式を書く際は生成する要素を入れる x * for ループの後に if 判定を追加して、偶数の平方のみをフィルターで除外することもできます。
>>> [x * x for x in range(1, 11) if x % 2 == 0] [4、16、36、64、100]
|
>>> [「ABC」の m + n は「XYZ」の n] ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']
|
>>> [k + '=' + v for k, v in d.items()] ['y=B', 'x=A', 'z=C']
|
>>> [L の s の s. lower()] ['hello'、'world'、'ibm'、'apple'】
|
ジェネレーターを作成する方法はたくさんあります。最初の方法は非常に簡単で、リスト生成式の [] を () に変更してジェネレーターを作成するだけです。
>>>L ; [0、1、4、9、16、25、36、49、64、81]>>> g = (x * 範囲(10) の x) >>> 0x1022ef630>
Lとgの作り方の違いは一番外側の[]と()だけで、Lはリスト、gはジェネレータです。それらを 1 つずつ出力したい場合は、next() 関数を通じてジェネレーターの次の戻り値を取得できます。すでに述べたように、ジェネレーターは next(g) が呼び出されるたびに、最後の要素が計算されるまで g の次の要素の値を計算し、StopIteration エラーがスローされます。
ジェネレーターも反復可能なオブジェクトであるため、正しい方法は for ループを使用することです。
ジェネレーターを定義する別の方法。関数定義に yield キーワードが含まれている場合、その関数は通常の関数ではなくジェネレーターになります:
6.4 タプルの解凍タプルの要素('東京'、2003、32450、0.66、8014)を変数city、year、pop、chg、areaにそれぞれ代入し、たった1行の宣言ですべての代入を書きます。 同様に、次の行の % 演算子は、パスポート タプルの要素を print 関数のフォーマット文字列のギャップにマップします。これらは両方ともタプルのアンパックの応用です。 タプルのアンパックの最もよく知られた形式は並列代入です。これは、反復可能なオブジェクト内の要素を、対応する変数で構成されるタプルに代入することを意味します。 並列割り当て:
|
以上がPython基礎学習まとめ(4)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。