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

KサイズのN個のリストをランダムに作成するPythonプログラム


サイズがKのN個のリストをランダムに作成する必要がある場合は、値をシャッフルして出力を生成するメソッドが定義されます。

以下は同じもののデモンストレーションです

from random import shuffle

def gen_random_list(my_val, K):
   while True:
      shuffle(my_val)
      yield my_val[:K]

my_list = [12, 45, 76, 32, 45, 88, 99, 0, 1]
print("The list is ")
print(my_list)

K, N = 4, 5
print("The value of K is ")
print(K)
print("The value of N is ")
print(N)

my_result = []
for elem in range(0, N):
   my_result.append(next(gen_random_list(my_list, K)))

print("The result is " )
print(my_result)

出力

The list is
[12, 45, 76, 32, 45, 88, 99, 0, 1]
The value of K is
4
The value of N is
5
The result is
[[88, 76, 99, 12], [12, 99, 32, 76], [32, 76, 12, 99], [32, 45, 0, 12], [76, 0, 1, 45]]

説明

  • 必要なパッケージが環境にインポートされます。

  • 値と「K」をパラメータとして受け取る「gen_random_list」という名前のメソッドが定義されています。

  • 「シャッフル」メソッドと「yield」演算子をスライスとともに使用して、結果を出します。

  • メソッドの外部では、リストが定義され、コンソールに表示されます。

  • KとNの値が定義され、コンソールに表示されます。

  • 空のリストが定義されています。

  • 0からNまでの範囲が繰り返され、メソッドが呼び出され、結果が空のリストに追加されます。

  • これは、コンソールに出力として表示されます。


  1. Pythonで2つのリストから辞書を作成する方法は?

    L1とL2がキーとそれぞれの値を含むリストオブジェクトである場合、次のリスト内包表記構文を使用して辞書オブジェクトを作成できます。 >>> L1 = [a,b,c,d] >>> L2 = [1,2,3,4] >>> d = {L1[k]:L2[k] for k in range(len(L1))} >>> d {a: 1, b: 2, c: 3, d: 4}

  2. Pythonで特定のサイズのファイルを作成するにはどうすればよいですか?

    特定のサイズのファイルを作成するには、ファイルを作成するバイト番号(サイズ)を探して、そこにバイトを書き込みます。 例 with open('my_file', 'wb') as f:     f.seek(1024 * 1024 * 1024) # One GB     f.write('0') これにより、実際にすべてのスペースを占有することなく、スパースファイルが作成されます。完全なファイルを作成するには、ファイル全体を作成する必要があります: with open('my_file'