Pythonでライブラリセットクラスを使用せずにセットデータ構造を定義するプログラム
次のメソッドを使用してセットデータ構造を実装するとします-
- セットの新しいインスタンスを構築するコンストラクター
- add(val)を使用して、整数valをセットに挿入します
- presents(val)は、valがセットに含まれているかどうかを確認します
- remove(val)を使用して、セットからvalを削除します
したがって、集合sを作成する場合は、s.add(10)、s.add(20)、s.add(10)、s.exists(10)、s.remove(10)、s.exists( 10)、s.exists(20)の場合、出力は次のようになります
- s.add(10)の場合、10が挿入されます
- s.add(20)の場合、20が挿入されます
- 10はすでにsに含まれているため、何も起こりません
- s.exists(10)は、10が存在するためtrueを返します
- s.remove(10)で10を削除
- s.exists(10)は、10が削除され、1つの要素が1回しか存在できないため、falseを返します
- s.exists(20)は、20が存在するため、trueを返します。
これを解決するには、次の手順に従います-
- コンストラクターを定義します。
- バケット:=空のマップ。これはデータのリストを保持します
- 関数add()を定義します。これにはvalが必要です
- presents(val)がfalseの場合、
- バケットの最後にvalを挿入します[val]
- 関数exists()を定義します。これにはvalが必要です
- valがbuckets[val]にある場合はtrueを返し、そうでない場合はfalseを返します
- 関数remove()を定義します。これにはvalが必要です
- バケットを削除[val]
例
理解を深めるために、次の実装を見てみましょう-
from collections import defaultdict class MySet: def __init__(self): self.buckets = defaultdict(list) def add(self, val): if not self.exists(val): self.buckets[val].append(val) def exists(self, val): return val in self.buckets[val] def remove(self, val): del self.buckets[val] s = MySet() s.add(10) s.add(20) s.add(10) print(s.exists(10)) s.remove(10) print(s.exists(10)) print(s.exists(20))
入力
s = MySet() s.add(10) s.add(20) s.add(10) s.exists(10) s.remove(10) s.exists(10) s.exists(20)
出力
True False True
-
ループを使用しない印刷番号シリーズのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 − 2つの数NとKが与えられた場合、問題は、数(N)がゼロ(0)より大きくなるまでNから数Kを引くことです。Nが負またはゼロになると、その数が元の番号(N)。 たとえば、 N = 10 K = 4 Output will be: 10 6 2 -2 2 6 10 アルゴリズム 1. we call the function again and again until N is greater than zero (in every function call we subtra
-
Pythonでの探索的データ分析
データ分析の場合、探索的データ分析(EDA)を最初のステップにする必要があります。探索的データ分析は、次のことに役立ちます- データセットへの洞察を与えるため。 基礎となる構造を理解します。 重要なパラメータとそれらの間にある関係を抽出します。 基礎となる仮定をテストします。 サンプルデータセットを使用したEDAの理解 Pythonを使用してEDAを理解するために、任意のWebサイトから直接またはローカルディスクからサンプルデータを取得できます。ワイン品質データセットの赤い変種が公開されているUCIMachineLearning Repositoryからサンプルデ