2016-11-13 12 views
0

Поэтому мне нужно иметь список, где у меня есть 1 список с загрузкой значений между 1 и 8 случайно сгенерированными и еще одним списком с нагрузкой от 1 до 8 случайным образом. Мне удалось сделать это на мой код ниже:Одинаковые значения в двух списках (пар)

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]

В LISTA, 5 производится два раза и 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) 

Надеется, что это помогает!