Одинаковые значения в двух списках (парах)

Поэтому мне нужен список, в котором у меня есть 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, 5, 2, 5, 1]

[1, 2, 3, 2, 4]

В списке А 5 производится дважды, а 2 под ним во втором списке также производится дважды. Я не могу найти решение, чтобы получить их из моих списков, когда они создают такую ​​пару. Благодарю.

1 ответ

Решение

Вы можете использовать вспомогательную функцию, как показано ниже, чтобы сгенерировать уникальный номер, которого нет в списке, и добавить его в список.

Это должно работать для вас:

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)

Надеюсь это поможет!

Другие вопросы по тегам