2016-11-13 11 views
0

リストは1から8までの値をランダムに生成したリストと1から8までの値のランダムなリストをランダムに生成する必要があります。私は以下の私のコードでこれを行うために管理している:2つのリスト(ペア)の同じ値

from random import * 
listA = [] 
listB = [] 
inp = int(input('Number of values generated')) 
for x in range(0,inp): 
    num = randint(0,8) 
    listA.append(num) 
    if num == 0: 
     numB = randint(1,8) 
    else: 
     numB = randint(0,8) 
    listB.append(numB) 
print(listA) 
print(listB) 

最初のリストの値は0にすることはできず、seondリストの値が同じ裁判にすぎゼロにすることはできません。私はこれを私のコードの中に持っています。しかし、これは私が持っている問題です。

リスタ[4、、2、、1]

[1、、3、、4]

、5回生成されます2番目のリストの2番目のリストも2回も生成されます。このようなペアを作成すると、私のリストからこれらを取得するソリューションを見つけることができません。おかげさまで

+0

あなたが8人しか使用していない場合、なぜユーザーにいくつの番号を要求していますか? – e4c5

+0

その値は0から8までですが、各リストに一定数の数字を追加する必要があります –

+0

アルゴリズムを変更することができます:数字を含むタプルを作成する1..8今度は、Nをユーザのアイテム数(0 boardrider

答えて

0

以下のようなヘルパー関数を使用して、リストにない一意の番号を生成し、それをリストに追加することができます。

これはあなたのために働く必要があります。

def generateUnique(list, start, end): # Helper Function to generate and return unique number not in list 
    num = randint(start, end) 
    while num in list: # loop will keep generating a value, until it is unique in the given list 
     num = randint(start, end) 
    return num 


from random import * 
listA = [] 
listB = [] 
inp = int(input('Number of values generated')) 
for x in range(0,inp): 
    num = generateUnique(listA, 0, 8) 
    listA.append(num) 
    if num == 0: 
     numB = generateUnique(listB, 1, 8) 
    else: 
     numB = generateUnique(listB, 0, 8) 
    listB.append(numB) 

print(listA) 
print(listB) 

は、この情報がお役に立てば幸い!

関連する問題