logo

Python のループ手法

Python は、さまざまな順次コンテナーの特定の組み込み関数によってさまざまなループ手法をサポートしています。これらのメソッドは主に競技プログラミングで非常に役立ちますが、コード全体の構造を維持するループによる特定のテクニックを必要とするさまざまなプロジェクトでも役立ちます。  従来のループ手法で宣言する追加の変数を宣言する必要がないため、多くの時間とメモリ領域が節約されます。

どこで使われているのでしょうか?

さまざまなループ手法は主に、実際にコンテナ全体の構造や順序を操作する必要がなく、コンテナ内でインプレース変更が発生しない 1 回限りのインスタンスの要素を出力するだけの場所で役立ちます。これは時間を節約するためにインスタンスでも使用できます。

Python データ構造を使用したさまざまなループ手法は次のとおりです。  

方法 1: enumerate() を使用する:   enumerate() は、インデックス番号とその特定のインデックスに存在する値を出力するコンテナをループするために使用されます。



Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['The' 'Big' 'Bang' 'Theory']): print(key value) 

出力:

Javaのaのascii
0 The  
1 Big
2 Bang
3 Theory
Python3
# python code to demonstrate working of enumerate() for key value in enumerate(['Geeks' 'for' 'Geeks' 'is' 'the' 'Best' 'Coding' 'Platform']): print(value end=' ') 

出力:

Geeks for Geeks is the Best Coding Platform 

方法 2: zip() を使用する:  zip() は、値を順番に出力する 2 つ以上のコンテナを結合するために使用されます。ループは、小さいコンテナが終了するまでのみ存在します。 zip() と enumerate() の詳細な説明はこちらを参照してください。 ここ

例 1: 2 つの異なるデータ型 (listtuple)

Python
# python code to demonstrate working of zip() names = ['Deep' 'Sachin' 'Simran'] # list ages = (24 27 25) # tuple for name age in zip(names ages): print('Name: ' name) print('Age: ' age) print() 

出力
('Name: ' 'Deep') ('Age: ' 24) () ('Name: ' 'Sachin') ('Age: ' 27) () ('Name: ' 'Simran') ('Age: ' 25) () 

例 2: 2 つの類似したデータ型 list-list

Python3
# python code to demonstrate working of zip() # initializing list questions = ['name' 'colour' 'shape'] answers = ['apple' 'red' 'a circle'] # using zip() to combine two containers # and print values for question answer in zip(questions answers): print('What is your {0}? I am {1}.'.format(question answer)) 

出力:

What is your name? I am apple.  
What is your color? I am red.
What is your shape? I am a circle.

方法 3: iteritem() を使用する:  iteritems() は、辞書のキーと値のペアを順番に出力する辞書をループするために使用されます。これは、Python 3 バージョンより前に使用されていました。

方法 4: items() を使用する: items() は、辞書に対して iteritems() と同様のタスクを実行しますが、 iteritems() と比較すると、いくつかの欠点があります。

  • それは 非常に時間がかかる 。大きな辞書でこれを呼び出すと、かなりの時間がかかります。
  • それには たくさんの記憶 。辞書を呼び出すと 2 倍のメモリが必要になる場合があります。

例 1:

Python3
# python code to demonstrate working of items() d = {'geeks': 'for' 'only': 'geeks'} # iteritems() is renamed to items() in python3 # using items to print the dictionary key-value pair print('The key value pair using items is : ') for i j in d.items(): print(i j) 

出力:

The key value pair using iteritems is :   
geeks for
only geeks

例 2:

Javaの数値を文字列に変換
Python3
# python code to demonstrate working of items() king = {'Ashoka': 'The Great' 'Chandragupta': 'The Maurya' 'Modi': 'The Changer'} # using items to print the dictionary key-value pair for key value in king.items(): print(key value) 

出力
Ashoka The Great Chandragupta The Maurya Modi The Changer 

方法 5:sorted() を使用する:   sorted() は、 コンテナはソート順です 。それ コンテナを分類しない ただし、コンテナーを 1 つのインスタンスに対してソートされた順序で出力するだけです。の使用 set() を組み合わせて重複を削除できます 出来事。

例 1:

Python3
# python code to demonstrate working of sorted() # initializing list lis = [1 3 5 6 2 1 3] # using sorted() to print the list in sorted order print('The list in sorted order is : ') for i in sorted(lis): print(i end=' ') print('r') # using sorted() and set() to print the list in sorted order # use of set() removes duplicates. print('The list in sorted order (without duplicates) is : ') for i in sorted(set(lis)): print(i end=' ') 

出力:

    The li   st in sorted order is :   
1 1 2 3 3 5 6
The list in sorted order (without duplicates) is :
1 2 3 5 6

例 2:

Javaの現在の日付
Python3
# python code to demonstrate working of sorted() # initializing list basket = ['guave' 'orange' 'apple' 'pear' 'guava' 'banana' 'grape'] # using sorted() and set() to print the list # in sorted order for fruit in sorted(set(basket)): print(fruit) 

出力:

apple  
banana
grape
guava
guave
orange
pear

方法 6: reversed() を使用する:  reversed() は、次の値を出力するために使用されます。 コンテナを逆の順序で 。 元のリストへの変更は反映されません

例 1:

Python3
# python code to demonstrate working of reversed() # initializing list lis = [1 3 5 6 2 1 3] # using reversed() to print the list in reversed order print('The list in reversed order is : ') for i in reversed(lis): print(i end=' ') 

出力:

The list in reversed order is :   
3 1 2 6 5 3 1

例 2:

Python3
# python code to demonstrate working of reversed() # using reversed() to print in reverse order for i in reversed(range(1 10 3)): print(i) 

出力:

7  
4
1
  • これらの手法はすぐに使用できるため、コーディングの労力が軽減されます。 for while ループでは、コンテナの構造全体を変更する必要があります。
  • これらのループ手法では、コンテナーの構造を変更する必要はありません。 正確な使用目的を示すキーワードがあります。一方、for while ループでは事前予測や推測を行うことができないため、一目見ただけでは目的を簡単に理解できません。
  • ループ手法を使用すると、for & while ループを使用するよりもコードが簡潔になります。

ループ手法 if ステートメントを使用した while ループ:

この例では、while ループを使用して count という変数をインクリメントします。ループ内で if ステートメントを使用して count が 3 に等しいかどうかを確認します。3 に等しい場合は、メッセージを出力します。

アプローチ:

count変数を0に初期化する
while ループを使用して、カウントが 5 未満である限りコードのブロックを繰り返し実行します。
ループ内で if ステートメントを使用して count が 3 に等しいかどうかを確認します。
count が 3 の場合、メッセージを出力します
各反復の終了時にカウントを 1 ずつ増やします

Python3
# Example variable count = 0 # Loop while count is less than 5 while count < 5: if count == 3: print('Count is 3') count += 1 

出力
Count is 3


時間計算量: O(n) ここで、n はカウントが 5 に達するまでに必要な反復回数です。

Javaの連結文字列

補助スペース: コード全体で 1 つの変数 (カウント) のみが使用されるため、O(1)。

クイズの作成