Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの内包表記


特定のPythonシーケンスを使用して新しいシーケンスを作成できます。これは理解と呼ばれます。これは基本的に、別のシーケンスを使用してリスト、辞書、セット、またはジェネレーターとなるシーケンスを生成するための簡潔なコードブロックを作成する方法です。異なるタイプのシーケンス間の変換の複数のステップが含まれる場合があります。

リスト内包表記

この方法では、既存のリストの値を操作して新しいリストを作成します。次の例では、リストを取得し、指定されたリストの各要素に3を追加して、新しいリストを作成します。

given_list = [x for x in range(5)]
print(given_list)

new_list = [var+3 for var in given_list]

print(new_list)

出力

上記のコードを実行すると、次の結果が得られます-

[0, 1, 2, 3, 4]
[3, 4, 5, 6, 7]

辞書内包表記

上記と同様に、リストを取り込んで、そこから辞書を作成できます。

given_list = [x for x in range(5)]
print(given_list)

#new_list = [var+3 for var in given_list]
new_dict = {var:var + 3 for var in given_list }

print(new_dict)

出力

上記のコードを実行すると、次の結果が得られます-

[0, 1, 2, 3, 4]
{0: 3, 1: 4, 2: 5, 3: 6, 4: 7}

2つのリストを取り込んで、そこから新しい辞書を作成することもできます。

list1 = [x for x in range(5)]
list2 = ['Mon','Tue','Wed','Thu','Fri']
print(list1)
print(list2)

new_dict ={key:value for (key, value) in zip(list1, list2)}

print(new_dict)

出力

上記のコードを実行すると、次の結果が得られます-

[0, 1, 2, 3, 4]
['Mon', 'Tue', 'Wed', 'Thu', 'Fri']
{0: 'Mon', 1: 'Tue', 2: 'Wed', 3: 'Thu', 4: 'Fri'}

集合の内包性

上記と同様のアプローチを取り、既存のセットまたはリストから新しいセットを作成できます。次の例では、既存のセットの要素に3を追加して、新しいセットを作成します。

given_set = {x for x in range(5)}
print(given_set)

new_set = {var+3 for var in given_set}

print(new_set)

出力

上記のコードを実行すると、次の結果が得られます-

{0, 1, 2, 3, 4}
{3, 4, 5, 6, 7}

ジェネレーターの理解

既存のリストから新しいジェネレーターを作成できます。これらのジェネレータは、アイテムが最初に割り当てられるのではなく、生成されるときにメモリを割り当てるため、メモリ効率が高くなります。

given_list = [x for x in range(5)]
print(given_list)

new_set = (var+3 for var in given_list)

for var1 in new_set:
   print(var1, end=" ")

出力

上記のコードを実行すると、次の結果が得られます-

[0, 1, 2, 3, 4]
3 4 5 6 7

  1. Pythonでパターンを印刷する方法は?

    Pythonのパターンは、ネストされたforループを使用して印刷できます。外側のループは行数を反復処理するために使用され、内側のループは列数を処理するために使用されます。印刷ステートメントは、要件に応じてさまざまなパターンを形成するように変更されます。 パターンには、星型、数字型、アルファベット型があります。パターンは、さまざまな形、三角形、ピラミッドなどにすることができます。 例 これらのパターンはすべて、これらの異なるパターンを形成する変更されたprintステートメントを含むforループを使用して印刷できます。 これらのパターンの印刷の基本的な考え方は同じですが、わずかな違いが

  2. Pythonでリストを印刷する

    リストは一連の要素です。シーケンス内のすべての要素は、シーケンス内の位置によってアクセスできます。インデックスは0で始まります。したがって、list [2]は、リストの3番目のインデックス2、つまり50の要素を返します。