两个列表(对)中的相同值

Same values in two lists (pairs)

我需要一个列表,其中一个列表的负载值介于 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,第二个列表中的值也不能为零。我的代码中已经有了这个。然而这就是我遇到的问题。

[4, 5, 2, 5, 1]

[1, 2, 3, 2, 4]

在 listA 中,5 被生成了两次,第二个列表中它下面的 2 也被生成了两次。当他们创建这样的一对时,我想不出一个解决方案来将它们从我的列表中删除。

您可以使用如下辅助函数生成一个不在列表中的唯一编号并将其附加到列表中。

这应该适合你:

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)

希望对您有所帮助!