キュー データ構造は非常によく知られたデータ構造であり、Python のリストでは通常、要素が Python リストの最後に追加されます。キュー データ構造を実装するには、リストから先頭の要素を削除できることが不可欠です。リストの最初の要素を削除する方法について説明します。
方法 1: Pop() を使用して Python のリストから要素を削除する
この Pop() メソッド、つまり i を削除して出力します。番目リストから要素を選択します。この方法は、このタスクを実行するために使用できる他のオプションの中で最もよく使用されます。これにより、元のリストが変更されます。
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using pop(0) to perform removal> test_list.pop(> 0> )> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
出力:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
方法 2: del list[] を使用して Python のリストから要素を削除する
これは、前方削除を実行するための単なる代替方法であり、この del 演算子は、適切なリスト要素の削除も実行し、リストのサイズを 1 ずつ減らします。
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using del list[0] to perform removal> del> test_list[> 0> ]> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
出力:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
方法 3: Python でスライスを使用してリストから要素を削除する
パイソンのスライシング この問題を解決できるもう 1 つのアプローチは、リストを 2 番目の要素から最後までスライスし、それを空のリストに割り当てることができます。これは、上記の 2 つの方法の場合のように、インプレース変換を実行しません。
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using slicing to perform removal> res> => test_list[> 1> :]> # Printing modified list> print> (> 'Modified list is : '> +> str> (res))> |
>
>
出力:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
方法 4: Python でリストから要素を削除する 何について() + ポップレフト()
これは、この特定のタスクを達成するためのあまり知られていない方法で、リストを両端キューに変換してから左ポップを実行し、リストの先頭から要素を削除します。
Python3
from> collections> import> deque> # initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using deque() + popleft() to> # perform removal> res> => deque(test_list)> res.popleft()> # Printing modified list> print> (> 'Modified list is : '> +> str> (> list> (res)))> |
>
>
出力:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
方法 5: Python で、remove() を使用してリストから要素を削除する
の 取り除く() 関数を使用すると、指定した値の最初のインスタンスをリストから削除できます。これを使用して、リストの一番上の項目を削除できます。リストから最初のメンバーを選択し、それをremove()関数に渡します。
Python3
test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ,> 10> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # Remove first element from list in python> test_list.remove(test_list[> 0> ])> # Printing modified list> print> (> 'Modified list is : '> +> str> (test_list))> |
>
>
出力:
ネットワークトポロジー
Original list is : [1, 4, 3, 6, 7, 10] Modified list is : [4, 3, 6, 7, 10]>
方法:6 リスト内包表記を使用する
アプローチを実装するための段階的なアルゴリズム
- リストtest_list
- 空のリストを初期化する new_list
- test_list 内の要素を 2 番目の要素から繰り返します。
a.現在の要素を new_list に追加します - new_list を返す
Python3
# initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # remove first element using list comprehension> new_list> => [x> for> x> in> test_list[> 1> :]]> # print the new list> print> (> 'Modified list is : '> +> str> (new_list))> |
>
>出力
Modified list is : [4, 3, 6, 7]>
時間計算量:
このアプローチの時間計算量は O(n) です。ここで、n は入力リスト test_list 内の要素の数です。
これは、最初の要素を除き、アルゴリズムがリスト内の各要素を 1 回反復処理するためです。最初の要素はスキップされます。
補助スペース:
このアプローチの補助空間の複雑さは O(n) です。ここで、n は入力リスト test_list 内の要素の数です。
これは、アルゴリズムが新しいリスト new_list を作成して入力リストの変更されたバージョンを保存するためであり、このリストには test_list と同じ数の要素が含まれる可能性があります。
numpy.delete() の使用:
- numpy ライブラリをインポートする
- 変更するリストから numpy 配列を作成します
- numpy.delete() 関数を使用して配列の最初の要素を削除します
- 変更したnumpy配列をリストに変換します。
- 元のリストと変更されたリストを印刷する
Python3
import> numpy as np> # initializing list> test_list> => [> 1> ,> 4> ,> 3> ,> 6> ,> 7> ]> # Printing original list> print> (> 'Original list is : '> +> str> (test_list))> # Convert list to numpy array> np_array> => np.array(test_list)> # Use numpy.delete() to remove first element> modified_np_array> => np.delete(np_array,> 0> )> # Convert numpy array back to list> modified_list> => modified_np_array.tolist()> # Printing modified list> print> (> 'Modified list is : '> +> str> (modified_list))> |
>
>
出力:
Original list is : [1, 4, 3, 6, 7] Modified list is : [4, 3, 6, 7]>
時間計算量:
numpy.delete() 関数の時間計算量は O(n) です。ここで、n は numpy 配列の要素の数です。また、リストを numpy 配列に変換し、再びリストに戻すため、このアプローチの全体的な時間計算量は O(n) です。
空間の複雑さ:
このアプローチの空間計算量は O(n) です。ここで、n は入力リスト test_list 内の要素の数です。これは、numpy 配列の作成が原因です。