50個の乱数からなる2つのリスト( "lstA"、 "lstB")を作成したいとします。次に、2つのリストと、3番目のリスト( "lstOvrlp")に入れたいと思われる重複を比較したいと思います。私はその3番目のリストの長さをとり、それを4番目のリスト( "lstC")に入れたいと思います。新しいリストevery Whileループ
次は、この基本的なプログラムを10回ループさせたいとします(この部分のユーザー入力は後で追加します)。
これは、これまで私が持っているコードです:
def main():
import random
lstA = []
lstB = []
lstC = []
lstA = random.sample(range(1, 101), 50)
lstB = random.sample(range(1, 101), 50)
lstOvrlp = set(lstA) & set(lstB)
while len(lstC) <= 10:
print("This is list A:", lstA)
print("\n")
print("This is list B:", lstB)
print("\n")
print("This is the overlap between the two lists:", lstOvrlp)
numinC = len(lstOvrlp)
print("Number in common: ", numinC)
print("\n")
lstC.append(numinC)
print(lstC)
main()
問題ではなくループを通るたびに乱数を吐きよりも、プログラムだけで何度も何度もその結果同じ番号を再使用していることです「lstC」の同じオーバーラップ数と結果的に同じ長さ。多分私が知りませんがランダムに他の機能があるかもしれませんが、私はそれを見つけることができません。
"lstC"がさまざまなエントリで終わるように、プログラムがループするたびに "lstA"と "lstB"に新しいバッチ番号があることを望みます。私はデータを扱ういくつかの練習をしようとしていますが、結局私はこの情報に関する平均的な統計分析とそれ以外の単純な統計分析を実行します。
私はここにある誤りを指摘できませんが、私はそれらがたくさんあることを保証することができますので、忍耐してください。
ありがとう
'random.sample'生成**を** whileループ内に配置する必要があります。さもなければそれらを生成し(1回)、* then *ループを実行しますが、ランダムサンプルを再度生成しません。 – BorrajaX
変更しないとどのように変化すると思いますか? –
ループ内にlstAとlstBのサンプルを生成する必要があります:) – Ejaz