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

PythonのBisectアルゴリズム関数


このモジュールは、新しい要素を挿入するたびにリストを並べ替えることなく、並べ替えられた順序でリストを維持するためのサポートを提供します。 insort_leftとinsort_rightの2つの関数に焦点を当てます。

insort_left

この関数は、必要な位置に番号を挿入した後、ソートされたリストを返します。要素がリストにすでに存在する場合、要素は可能な限り左端の位置に挿入されます。この関数は、4つの引数、処理する必要のあるリスト、挿入する数値、考慮する必要のあるリスト内の開始位置、考慮する必要のある終了位置を取ります。開始位置と終了位置のデフォルト値は、それぞれ0と文字列の長さです。

これはinser_leftに似ていますが、厳密な並べ替え順序を維持せずに既存のエントリを挿入した後に新しい要素が挿入される点が異なります。

構文

bisect.insort_left(a, x, lo=0, hi=len(a))
bisect.insort_left(a, x, lo=0, hi=len(a))
a is the given sequence
x is the number to be inserted

以下の例では、リストを取得し、最初にbisect.insort_left関数をリストに適用していることがわかります。

import bisect

listA = [11,13,23,7,13,15]
print("Given list:",listA)
bisect.insort_left(listA,14)
print("Bisect left:\n",listA)

listB = [11,13,23,7,13,15]
print("Given list:",listB)
bisect.insort_right(listB,14,0,4)
print("Bisect righ:\n",listB)

出力

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

Given list: [11, 13, 23, 7, 13, 15]
Bisect left:
   [11, 13, 23, 7, 13, 14, 15]
Given list: [11, 13, 23, 7, 13, 15]
Bisect righ:
   [11, 13, 14, 23, 7, 13, 15]

  1. Python配列二分アルゴリズム

    バイセクトアルゴリズムは、リスト内の位置を見つけるために使用されます。ここで、データを挿入してリストを並べ替えることができます。 Pythonにはbisectというモジュールがあります 。このモジュールを使用すると、二分法アルゴリズムを使用できます。 このモジュールを使用するには、-を使用してインポートする必要があります import bisect いくつかのバイセクト関連の操作があります。これらは-です メソッドbisect.bisect(list、element、begin、end) このメソッドは、ソートされたリスト内の位置を見つけるために使用されます。ここで、番号を配置でき、

  2. Pythonモジュールのすべての関数を一覧表示するにはどうすればよいですか?

    dir(module)を使用して、モジュールのすべての属性/メソッドを取得できます。たとえば、 >>> import math >>> dir(math) ['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copy